Repository navigation
Integrate pinned portable-shell source without regressing device ownership #29
Description
Requested donor: atomicdeploy/portable-shell branch copilot/organize-readme-into-plan, pinned 67c5dcb8a63f4055cbdaf02e9ff271c53b46410d. Source-only integration; production deployment remains separately gated.
- Read all 17 tracked entries; record original hashes, exact mappings and concrete dispositions in the existing donor ledger. Preserve all 16 regular files and MIT notice; do not recreate the CodeQL root symlink.
- Adapt actual command catalogue/lookup and VT100 code into the live shell; add real bounded command/property Tab completion and edit alias to the existing editable TUI.
- Verify real replacements for serial, Telnet server and parameter editor stubs. Preserve authentication, nonblocking I/O, bounded memory, ownership, secret filtering and validated settings.
- Complete bundled TCP/stdin client with hostname resolution, fragmented Telnet negotiation, backpressure, deadlines, interactive password handling and terminal restoration; no command replay.
- Run focused regression coverage, source hash/ledger gates and final ESP32-S3 build.
- Publish checkpoints 7373e9e and 2a17b8c on PR Fix live controls, correction previews and host presentations #27.
- Separately authorized live USB/Telnet/device acceptance and deployment. No production device was contacted or changed in this task.
Passed: tools/test-shell.ps1 (including new TCP loopback tests), tools/test-shell-properties.ps1 on ordinary/S3/ESP8266 descriptor profiles, tests/shell_metadata_test.mjs, tests/reuse_preflight_test.ps1, snapshot/ledger gates and comparison check. S3 compile: 2302399 application bytes of 3342336, 138724 static global bytes. Candidate binary SHA256 519a9753d79da66848c734bf35f99e5cd38757e289d2109a397f4dca1099d567. These are source/build/fixture observations, not measured runtime or hardware acceptance.
Raw UDP shell execution is deliberately not exposed: donor UDP reply code is broken and supplies no authenticated ownership contract. Existing UDP discovery is unchanged. Original upstream whitespace is preserved for exact hashes; integration code passes whitespace checking.
Related #2, #3. Full disposition guide: third_party/portable-shell/README.md; authoritative file comparisons: docs/file-comparison-evidence.json. CI results remain separate from local verification.
Canonical component consolidation, 2026-10-28
- Compare current Pakar implementations at b09650e with PortableShell 12bfe710; move reusable event editor, Telnet/terminal primitives and snapshot/action TUI upstream with MIT attribution and regression cases.
- Merge PortableShell PR File-by-file donor parity, exact mappings and justified omissions #3 as a829784; all 11 Windows/Linux/macOS/profile/ARM checks passed. Canonical component pin is 52c5f7f94581806109e30f5c1ffd6c74ff5bff40.
- Replace Pakar implementation copies with thin adapters on PR Replace local terminal forks with canonical PortableShell components #34, retaining product commands/authentication, USB/SSH/transfer ownership and hardware routing. Preserve original Git history and all 17 historical reference entries; add four exact current components to the same ledger (21 total).
- Pass tools/test-shell.ps1 and canonical-source hash gates in an isolated worktree, including authentication/session/USB/TUI and TCP/UDP loopbacks. Red rounded frames, magenta selection, secret drafts and diagnostic guards are retained upstream.
- Complete Pakar PR Replace local terminal forks with canonical PortableShell components #34 and its parent Fix live controls, correction previews and host presentations #27 merge/CI gates. Parent merged as e47b230; canonical consumer merged as da12fde. All final-head firmware/resource, Windows, Android, repository/tooling and CodeQL gates passed; main has the same source tree as tested CI merge 56d18d4.
- Live device and human acceptance remain open. No production board was contacted, flashed or changed during consolidation.
Activity
atomicdeploy commentedon Oct 27, 2026
Live keycontroller deployment reached ASUS over Wi-Fi, with before/after full firmware readback and matching saved game configuration. Tablet APK and Rust were installed. Runtime verification found three narrow blockers before acceptance: first-wins Output navigation was accidentally table-gated; aggregate telemetry exceeds its 24 KiB budget; native status IPC truncates replies above 64 KiB. Fixes and focused regression checks are in progress on PR #27. No ledcontroller actuation or update is part of this pass. Telnet help and property reads work on the actual board; interactive acceptance remains in progress.
atomicdeploy commentedon Oct 27, 2026
Checkpoint e24797a is pushed on PR #27. Fixed the tablet First-Wins Output gate, compacted aggregate telemetry without increasing its 24 KiB allocation, and enlarged bounded native IPC replies to 1 MiB with explicit oversize errors. Canonical builds passed; Flutter analyze + 5 targeted tests and 4 native instance tests passed, plus telemetry/replacement source guards and PU route hash checks. Actual keycontroller OTA is running (boot cf6232cf6458bee3ca872fa8c38c72d3), AVR online, valid 20468-byte telemetry, image MD5 3e914ba8628330c9a0619f168646fcbe. Telnet tested two simultaneous sessions, completion, history and TUI enter/exit with no mutations. Updated tablet APK installation succeeded; Rust replacement receipt confirms PID 22304 and settings/rollback preservation. Remaining: tablet disconnected from ADB and ASUS tunnel now times out during SSH banner exchange. This blocks final screenshots, two-board switching/control checks and follow-up full-image download. ASUS ledcontroller profile is temporarily manual to prevent wrong-AP roaming during OTA; automatic mode must be restored when the host returns. No ledcontroller actuation/update occurred. Full feature/hardware acceptance remains open.
atomicdeploy commentedon Oct 27, 2026
Checkpoint 6a8d911 is pushed on PR #27.
The first SDK compile caught char8_t literal incompatibility missed by C++17 fixtures; fixed using explicit UTF-8 wire bytes and switched the TUI fixture to C++23. Existing donor sources remain unchanged; reviewed target/proof hashes and limitations are in the same ledger. No production board was contacted, flashed, rebooted or actuated. PR conversations/reviews/thread pagination inspected: two prior status comments, no reviews/threads. Source is pushed and working tree clean; not waiting on CI, not claiming merge or production acceptance. Usage is in docs/TERMINAL-UI.md.
atomicdeploy commentedon Oct 27, 2026
Checkpoint c78a402 is pushed on PR #27. Re-read the actual PU850 Shell/Telnet/Commands/RemoteCommand sources at 4311040; the pasted audit predated 6a8d911.
pixel group GROUP [RRGGBB]; numeric INDEX remains zero-based and physical GROUP is one-based. No saved board values migrated.Existing ledger/receipt contain exact source/consumer/proof hashes and remaining reasons. No production board was contacted, flashed, reset or actuated; settings unchanged. PR conversations/reviews and paginated review-thread state inspected: no reviews or review threads. Source is synchronized and local tree clean. Not waiting on CI; no new CI-green, merge or deployment claim.
atomicdeploy commentedon Oct 28, 2026
Checkpoint cb6ff1d is published on PR #27 for the current terminal complaint.
Canonical shell/property tests, actual metadata/service and tone fixtures, TCP/UDP loopback, all/excluded-mode game fixtures, living API guard, PU route guard and scoped hash/comparison generation pass. The exact owned staged source projection was tested separately, preserving concurrent SSH/native/mobile work outside the commit. A failed test initially left a locked Windows fixture; automated closure was denied, no alternate kill/build-path workaround was used, and the same canonical test passed after that process exited.
Guarded S3 keycontroller candidate built: sketch 2357183/3342336 bytes; static RAM127276, 200404 remaining before runtime allocations. Application file2357328 bytes, SHA256 428ba2d09aa21b5d463ce78136c56c26d34fd433ec02941ce80c81ec309fdc0e. Candidate was compiled in the shared dirty checkout with concurrent disabled-SSH plumbing; not an exact clean-commit binary attestation.
ASUS SSH localhost:8022 still refused the current attempt. No board was flashed/rebooted/actuated and no sound was generated in this pass. Installed terminal visual/navigation, audible playback, full Unicode editing/grapheme/RTL and human acceptance remain open. Not claiming all-command/device parity, CI completion or merge.
atomicdeploy commentedon Oct 28, 2026
Source handoff follow-up: PR36 combines original b793233, owner fixes8aa81bd/9721cb and normally merged main335755a without rewritten history. Reviewed canonical PortableShell10b7d294 changes retain Pakar capacities, formatting default and application command/authentication/hardware ownership. Actual shell/editor/TUI/authority/TCP/UDP fixtures and21-file hash gate pass on combined source. Comparison generation caught nine stale integration-README target bindings; the guide and all affected source dispositions were rereviewed, the same bindings/reports refreshed, no guard bypass or unread promotion. Concurrent audit JSON conflicts are reconciled while preserving all814 records and both review scopes. Final candidate224dd2a is published; CodeQL passes, complete Build40765000068 is still required. No board, network, installed app, credential or live shell was contacted; hardware and human gates stay open.