Skip to content

PakarController complete production acceptance and donor parity #2

Open

Description

@atomicdeploy

PakarController production acceptance

This checklist is the full user-requested release scope. A checked source/test
checkpoint is not a checked physical acceptance item. Keep the GitHub master
issue open until every applicable acceptance item has linked evidence. Any
exclusion needs a concrete donor path, reason and hardware/business scope;
"equivalent soul" and content-hash screening are not integration proof.

Master tracking issue: #2

Current delivered checkpoint

Source20a242b · actual recovery and limitations. Diagnostic recovery, not production acceptance.

  • Corrected S3 image2193760B/SHA256 cb1f18f16c62e369e52120ec0986bd30d1b5d38e71204216c47aded721a6de0f installed by actual ROM-MAC/selection-guarded USB application-only recovery. VALID app0/0x10000, new boot ff6da73b47d6fd790fc1eb36c491d6ef, all34 running-image ranges/full SHA and same-peer WebSocket49ms verified. Rollback app1, bootloader/partitions/otadata and AVR memory/fuses untouched by recovery.
  • First LAN candidate ec2d497... was actually uploaded/verified but failed stability when MQTT exposed loopTask stack-canary panics. Original failure/COM22 panic capture retained; exact-ELF decode located nested telemetry/status stack exhaustion. Corrected compiled frames: loop2976→592B, submit1488→48B, publishTelemetry1408→80B; no SDK stack increase or second effects engine.
  • Actual RMT/GDMA refill IRQ measured source71/core1/vector27/level3. Periodic filesystem telemetry scans removed in favor of boot-cached age/known/null observation; fresh update admission retained. Same renderer advances between cloud writes.
  • Final16.418s normal-MQTT observation: same boot/all26 samples connected, publishes10→13,775 transmitted-frame increments, failed0, no zero-frame sample intervals; longest sampled gap516ms versus1086ms baseline. This is bounded runtime/counter evidence, not physical waveform or all80-cell proof. Startup TLS still reached2166ms; individual synchronous socket calls remain a limitation.
  • Actual ASUS wire observations: mDNS A, DNS-SD PTR/SRV/TXT, SSDP root/basic, MNDP identity/MAC/IP, NB name/full121B NBSTAT. Windows nbtstat reports LEDBOARD<00>/sameMAC from ASUS wired and Wi-Fi interfaces. ESP remains Wi-Fi+AP; W5500 runtime is DISABLED.
  • Focused LED worker/concurrent producer, actual-IDF ring, IRQ guard, both-platform cloud wire-format, filesystem, Ethernet/LLDP, network and settings fixtures; actual S3 SDK build; source ledger240/4673 hash-bound comparisons. Native and Flutter addressing packages built, NOT deployed in this pass. Zero open PRs at fresh listing; latest CI asynchronous, not claimed all-green.
  • Human confirms all80 cells/480 pixels and no periodic optical pause. Current user-selected rainbow is preserved; older output-disabled text below is historical.
  • Autonomous NTP after cold boot: clock remained unset; explicit ASUS UTC setting enabled the final TLS/MQTT test. Do not claim standalone NTP or USB-disconnect readiness from this pass.
  • Original Internet image job20/TLS allocation failure remains preserved; remote image-fetch/apply completion, external-power restart and long RF/coexistence soak still open.
  • Actual W5500 wiring/link/Ethernet-only Internet/local APIs/LLDP and router IGD acceptance. Router probes returned no IGD descriptor; no router login/mapping/firewall changes made.
  • Authoritative installed native/mobile acceptance: SSH session0 native IPC unavailable (not proof the interactive app is unhealthy); no GUI replacement or phone deployment this pass. Complete donor parity/peripheral/physical gates remain below.

Ledger:240 comparisons,4433 pending,197 known parity gaps. Keep this master issue OPEN.

Previous service recovery: LED all-off and ASUS app

Current ESP recovery source: 4e6a6f0; exact deployment and remaining limits. Version0.2.7; native/Android build14. This is a diagnostic recovery, not production acceptance.

  • The physical all-off failure is recorded: user still saw lit pixels after an accepted80-cell Off batch, all1440 published RGB bytes zero and gpio-static transmissions/error0. Those counters were NOT treated as optical success. Output disabled; no further colored tests.
  • Explicit RMT-DMA recovery uses1440 internal wire bytes, bounded SDK ring, immutable full frames and300us LOW latch. Fresh post-UART render time bypasses the obsolete SoftwareSerial lease on buffered S3. Static remains separately selectable, not silently removed.
  • One local OTA failed after5556ms: operation3 ABORTED42460/2046320. Independent reads established unchanged ca1acf boot/old image before USB recovery; no blind upload replay.
  • Fresh CRC-valid OTA19/20, COM22 bridge and same MAC selected app1/0x340000. USB wrote only that application range in31.7s and verified its hash. No bootloader/partition table/OTA selection data/filesystem/AVR writes in this ESP recovery.
  • Full actual running-image SHA d46b74b74d3471215fff3ac85cc4777287a7f9718f42cfd504804e195628f88f,2046320bytes; VALID selected/running app1 and new boot730642a9a16509512ec9365ec42b1f0b independently verified.
  • Actual RMT ready, submitted2/transmitted3/failed0/error0;80 saved Off states/output disabled. Auth disabled/BLE unstarted/Wi-Fi awake/AP+STA/MQTT observed. These are observations, not physical black or cloud-command round-trip proof.
  • Native PID15928/build14 reconnected Wi-Fi/WS to that exact boot:80 mappings/80Off, AVR online/TM ACKtrue, resting OFF raw masks, no pending maintenance or active incidents. Recovery timeouts remain in inactive history.
  • Four complete cached-address reads: status529ms/panel479ms/Web223213bytes in1336ms/SSDP XML661ms. Same-peer WS upgrade110ms+status36ms. One image-export read required the bounded read-only retry; no clean-soak claim.
  • Semantic TM policy and separate requested/observed WS+USB events in174da58; custom notice receipt/updater validation fixes infae96a6. Actual AVR Urboot backup/program jobs1/2 verified full flash and preserved EEPROM, without bootloader/EEPROM/fuse writes. Native14 deployed; Android14 exact APK staged on ASUS, NOT phone-installed.
  • Focused panel/LED pipeline and8 worker-double cases plus actual S3 SDK build passed. Canonical ledgers/hash guards checked; newest exact-head CI not awaited or declared green.
  • User confirms the new RMT startup/clear made ALL480 pixels physically dark.
  • Verify actual white/red/per-cell mapping, RF/refill/coexistence and fault recovery after all-black succeeds.
  • Repair and reverify current OTA ingress; this deployment required USB.
  • Complete nonblocking single-owner cloud I/O: synchronous service reached2044ms, and coalesced display flush still timestamps before a possibly stalled publish.
  • Physical TM notice readability/blink/menu priority and all peripheral/audio/input gates.
  • External-power/USB-removed restart, BLE/TLS/OTA coexistence, Android on-device/signing, native clipping/per-pixel preview, W5500/TFT and full donor parity.

Source provenance remains232/4673 hash-bound comparisons,4441 pending/190 parity gaps. Production remains OPEN. Historical successful Wi-Fi OTA/discovery and older images are retained in commissioning; they do not certify this current recovery. No secrets published.

Existing source/test checkpoints (not release acceptance)

  • Web's fixed 25 FPS timer replaced with explicit 60/default and 0/uncapped
    client pacing, bounded latest-frame buffering and peer/socket cancellation.
    5212914:
    quality/ESP compile, exact donor mappings and limits in WEB-STREAMING.md.
    Physical refresh, queued-frame fencing, multi-client arbitration and full
    mobile streaming/preferences parity remain open.

  • Embedded Web HTTP ownership in 5b54e4d: all Web mutations preflight and pin board/boot headers; settings/batches keep one owner, false cell ACKs stop, stale replies/drafts are revoked, bounded cancellation/deadlines and no 401/redirect replay. Full quality and ESP8266 busy-wire compile pass; exact module is present in image. GUI/Flutter/other transports, S3/DMA and physical acceptance remain open. docs/HTTP-PEER-FENCING.md.

  • HTTP board/boot fencing in b3e9d19: TUI requires valid advertised identity, pins all mutating HTTP requests, and ESP rejects stale/partial headers before dispatch and both uploads. 151 native tests, C++ validation, full quality, ESP8266 busy-wire compile, Release and staged CLI guards pass. GUI/Web/mobile/other transports, AVR-only reset, S3 integration and physical reboot acceptance remain open. docs/HTTP-PEER-FENCING.md.

  • Interactive terminal checkpoint in d450866: contextual pages, native shared Find/selection, explicit guarded bulk white/red/off and shared CLI command palette. 147 native tests and first built-CLI/ConPTY checks pass; rich editors/transport/mapping/full physical acceptance remain open. Final clean-head Release/stage, redirected guard/cause-chain and real Windows ConPTY smoke passed; not full GUI/hardware acceptance. docs/TERMINAL-UI.md.

  • Native/Web incident deduplication preserves distinct causes/routes/ports and explicit failures; native67948be live stable8rows/repeat counts and screenshot proof. Prior source60d8668 full CI38140468478 succeeds.

  • Buffered AVR build profile for S3 preparation in5d02b07; hardware Serial, A4/A5 TM1637 and busy/poll modes preserved. Actual shared transport tests/all3 AVR compiles pass. Source/build only, not deployed S3/AVR or physical zero-loss acceptance; docs/UART-FLOW-MIGRATION.md.

  • One integrated ESP firmware contains API/WebSocket, LED engine, cloud,
    storage, self-OTA and AVR ISP; no separate programmer firmware is required.

  • Busy-wire and polling build flags exist on both boards; AVR busy input uses
    INPUT_PULLUP; busy-wire is the current source default.

  • Pealayer-derived native shell, Phosphor assets, dock panels, preferences,
    dialogs, notifications, tray, native icons and single-instance IPC exist with
    explicit source mappings in PEALAYER-DESKTOP-FOUNDATION.md.

  • Half-cell odd-column stagger, alternating native column backgrounds,
    logical-number search, row-major IDs and physical/name mapping exist.

  • PCController-compatible one-shot/loop/interval display text and actual
    segment readback are implemented; production AVR presentation tests pass.

  • Actual PU850 firmware transfer source and real async web transport are
    integrated; persistent auth editing and USB recovery have source tests.

  • Persistent hostname editing via API/CLI/TUI/Web/native/Telnet/USB exists;
    no suffix is added; 0.2.3 builds and source tests pass locally.

  • Actual PU850 Telnet negotiation and bounded line editor are adapted;
    hidden password input, cursor editing and no truncated-command execution tested.

  • ESP busy-high explicitly uses INPUT_PULLUP; receive-ready preloads LOW;
    polling builds avoid that GPIO. Production source tested; live acceptance open.

  • Production AVR tone player preserves 530 ms donor welcome deadlines under
    delayed service and rollover; register-double tests pass, audible gate open.

  • Expanded 1,868-file donor inventory exposes missing sparse paths; manual
    reviews are hash-bound. Strict release gate rejects unresolved rows.

  • Existing Flutter source preserved and hardened: secure credential migration,
    no mutation replay, exact logical search and Once text default; source tests
    and analyzer pass. Phone/tablet and production-signing acceptance remain open.

  • All fourteen current catalog cues are exercised by production source tests;
    Puzzles 530 ms, PuzzleBoard 520 ms and 40LED 590 ms variants remain distinct.
    Native/Web/mobile expose only known AVR-advertised cues; USB carries catalog.

  • Native Wi-Fi+USB commands/network changes choose one route before dispatch;
    no dual application and no replay on uncertain failure. Serial status expires.

  • Broker TLS and anonymous rejection verified; exact ledboard topic ACL added
    without resetting credentials or unrelated tenant rules. ESP cloud gate open.

  • Native streaming target is configurable (60 FPS default, 0 uncapped) for
    rainbow and sampling; hidden 25/8 FPS delays removed. Sent rate is explicitly
    host-write evidence, not LED refresh. Pacing and table-footer tests pass.

  • Native network observations carry endpoint/credential identity; serial
    observations and queued writes carry port identity. Late other-peer events
    are rejected, and destination changes clear old displayed state.

  • Normal ESP/AVR handshake no longer queues a false update-success cue over
    the AVR welcome. Actual OTA/ISP cues remain; source regression passes.

  • Native sampler uses only a complete validated board-advertised physical
    map and the odd-column half-stagger; missing/duplicate maps disable it.
    Remapped cells and bounds pass tests; live and monitor/region gates stay open.

Donor completeness and provenance

  • Refresh exact refs and dirty state for Pealayer, canonical and legacy
    PCController, ControllerBoardMini/Puzzles, PuzzleBoard, 40LED and PU850/ASA0002E.
  • Inventory every source/tool/asset/test file, including sparse-checkout and
    missing files; bind manual decisions to source hashes/revisions.
  • Manually read every applicable donor source file; assign imported/adapted,
    verified superior replacement, business-only exclusion or hardware exclusion.
  • Import useful Puzzles code/features, including input/menu/display/audio/
    configuration behavior; retain PuzzleBoard's A4/DIO, A5/CLK pin mapping.
  • Reconcile every applicable PCController feature and protocol operation;
    no hardware-mismatched LCD/I2C page is falsely advertised.
  • Complete all useful PU850 features, including actual shell/editor,
    Telnet negotiation, discovery metadata/MNDP, diagnostics, file tooling,
    uploaders and CI/dependency/deployment scripts; document each exclusion.
  • Give each custom Pealayer UI element a donor file, target implementation,
    invocation path, tests and real rendered screenshot evidence.
  • Add an automated release gate for unresolved applicable ledger rows;
    distinguish screening from manual read and from runtime acceptance.

Electrical, timing and integrated firmware

  • Measure actual AVR VCC and crystal/clock/fuses against its exact part's
    datasheet speed grade. User-reported 3.3 V plus the current 16 MHz build profile
    needs confirmation; do not alter fuses or raise supply blindly with ESP wired.
  • Confirm busy-wire pull-ups and boot-safe GPIO0 behavior on actual hardware;
    retain configurable polling mode and select default using measured loss/latency.
  • Verify AVR hardware UART and ESP SoftwareSerial bidirectionally with CRC,
    error counters, reboot, lost-link recovery and LED/stream/update contention.
  • Verify TM1637 ACK, brightness, actual segments and correct connector pins.
  • Compare/import every donor melody, expose cue selection, test exact welcome
    timing and transitions; physically hear correct melody without clicks/jitter.
  • Verify all 74HC165 inputs, 74HC595 outputs and ADC6 ninth input/debounce.
  • Verify front-panel menus for ESP/AVR/device settings, actual parameters,
    game modes and logic; save/readback with truthful validation.
  • Verify meaningful seven-segment cell/winner/config/update/error values,
    imported perimeter animation and progress; no permanent nuisance marquee.
  • Verify full-brightness rainbow and deterministic effects with UART active;
    measure frame rate rather than adding an arbitrary 20fps cap.
  • Test live ESP self-OTA (including abort/bad hash/parallel clients) with cues.
  • Test live AVR ISP update/verify/recovery with Prog latch while full ESP
    services remain installed; prove reset/ISP/UART electrical ownership.
  • Store/retrieve verified AVR+Urboot and EEPROM backups; test filesystem-full,
    interrupted writes and restore without erasing configuration.

Business and streaming

  • Validate 80 logical row-major cells, six LEDs per cell, half-cell stagger,
    alternating backgrounds, number highlighting, rename and physical remap on all UIs.
  • Verify initial white table and per-cell red/off/effect changes via API,
    physical keypad/front panel, CLI/TUI, Web, desktop and mobile.
  • Verify nine-button first-wins logic, ties/reset/debounce and matching
    shift-register and strip outputs.
  • Complete snake example: input/control, reset, collision/game-over and
    consistent table mapping on all requested surfaces.
  • Complete real screen sampler: monitor/region selection, geometry mapping,
    controls and measured Wi-Fi streaming; no mpv dependency.
  • Validate configurable/uncapped streaming with backpressure and measured
    rendered LED throughput; compare host sent rate to actual board frame commits.
  • Verify Wi-Fi/WebSocket/UDP streaming framing, bounds, frame commit and
    disconnect recovery; define the AVR strip decision without duplicating engines.
  • Verify multi-client control and simultaneous Wi-Fi plus USB host transport
    without double-applying commands or presenting inferred hardware state.

Network, authentication and cloud

  • Deploy and verify this board as ledboard.local; API readback and reboot
    persistence; hostname-first clients with current-address recovery only.
  • Scan actual SSIDs; join DRS Tether using the latest privately supplied
    credentials; test reconnect and AP recovery without logging secrets.
  • Verify station/AP/AP+station selection and persistence through all menus.
  • Verify mDNS, SSDP, NetBIOS and all retained donor discovery on both PCs;
    verify advertisements refer to the same hardware UUID and configured name.
  • Verify NTP sync, offline/reconnect behavior and displayed time state.
  • Verify configured Basic/session authentication, clear sign-in UI, credential
    rotation, expiry, restart, USB recovery and access to protected WebSockets.
  • Test mqtt.digitalogic.ir round-trip, TLS/auth/ACLs and disconnect/reconnect;
    coordinate only scoped credentials/service changes on office.digitalogic.ir.
  • Verify configurable outbound WebSocket endpoint and round-trip/reconnect.
  • Expose safe network/cloud/device configuration across applicable API,
    CLI/TUI/Web/native/mobile/front-panel surfaces with secrets write-only.

Applications and visual acceptance

  • Complete native Pealayer-derived UX parity: modals, preferences, themes,
    palettes, icon vocabulary, actions/events, workspace/tray/single instance,
    shortcuts, seven-segment mirror and hardware monitor; exclude media/timeline/cue.
  • Inspect real Pakar and Pealayer screenshots in light/dark themes and narrow
    layouts; fix alignment, overflow, focus, empty/error/stale/pending states.
  • Build a proper interactive table TUI with per-cell effects, search/mapping,
    business modes and device configuration, not only a command prompt.
  • Complete Web UI parity with contextual panels, table controls, configuration,
    progress and hardware monitor; no fixed architecture narration or fake status.
  • Audit/preserve/finish the existing Flutter Android/tablet work; analyze/test/
    APK build, adaptive UI, secure settings, discovery and live board round-trips.
  • Install/run identical verified desktop packages on both PCs and open Web UI
    on David-ASUS; verify same authoritative board state across clients.

GitHub and release

  • Preserve every local-only source change and relevant semantic ref in GitHub;
    leave unrelated user work intact, and never treat a draft as a release.
  • Pass all exact-head firmware (both flags), native, Web, mobile and ledger
    checks; fix CI failures before merge.
  • Merge ready verified work to main; use semantic branches and no date/random
    suffixes in product/release names.
  • Publish a version-consistent production release with artifacts/hashes,
    donor licenses, migration/recovery instructions and actual deployment receipts.
  • Close the master issue only after applicable acceptance boxes have evidence;
    leave any blocked/untested requirement visibly open with its next action.

Immediate continuation order

  1. Bind this checklist to the GitHub master issue/PR and fix exact-head CI.
  2. Audit Puzzles/audio/busy wiring and full donor inventories; import/test omissions.
  3. Complete interactive TUI, richer Web/native menus and retained PU850 services.
  4. Audit and preserve Flutter sources; integrate mobile CI and builds.
  5. Restore ASUS reachability for live Wi-Fi, both firmware deployments, all
    physical tests, cloud round-trip and multi-client verification.
  6. Merge/release only after the evidence gates above are actually satisfied.

Source handoff consolidation (2026-10-28)

PR27 merged as e47b230; PR34 merged as da12fde. Original source checkpoints and all donor history are preserved by normal merges. Exact complete-stack head ccc061d passed Build40753870815 and CodeQL40753922292; main merge da12fde has its identical source tree. Parent8102f04 independently passed Build40753861517 and CodeQL40753861444. All S3/AVR role/link/optional-transfer builds, Windows495 tests/package, Android analysis/tests/APK, Web/ledger/tooling and resource budgets passed. Draft publishing skipped. S3+AVR are release targets; ESP8266 remains unfinished issue25. Source-only boxes above are now checked; hardware, installed-client, physical, security/donor parity and production acceptance remain OPEN. No board, production output or installed app changed. Private backups/settings/caches remain local; the active clean PortableShell worktree is preserved. Follow docs/HANDOFF.md and the current main SHA, not older deployment snapshots.

Activity

  1. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    PakarController 0.2.4 source checkpoint

    Refs #2.
    This is not the completed production acceptance or a hardware deployment.

    Implemented and locally verified

    • ESP busy HIGH explicitly uses INPUT_PULLUP; receive-ready preloads LOW
      before output enable. Polling builds never touch that GPIO. AVR input
      INPUT_PULLUP remains enabled. Both macro variants build.
    • Production AVR TonePlayer keeps the donor's musical deadlines instead of
      accumulating loop delays. The welcome is exactly 530 ms in the source
      schedule; late steps, wraparound, hardware divider, queue capacity, mute,
      resume and idle readback are covered by register-double tests. Hardware
      OC1A output remains on D9; these tests are not an audible recording.
    • Actual PU850 Telnet IAC/subnegotiation parser and insert/shift editor are
      adapted, with acknowledgements that avoid negotiation loops. CSI/SS3,
      arrows/home/end/delete/backspace, Ctrl-C/Ctrl-L, split CR LF/NUL, password
      non-echo, scrubbing, overflow rejection and independent state are tested.
      A 96-byte service budget and login/idle expiry bound shell loop work.
    • All 14 Puzzles LocalLib files and its complete sketch have been manually
      read, with individual source hashes and honest remaining decisions. The
      broader donor inventory contains 1,868 files, 63 missing sparse paths and
      1,863 unresolved manual/integration decisions. Hash screening is not full
      review. The strict release gate intentionally blocks this scope.
    • Existing Android/Flutter source is preserved in GitHub, version 0.2.4,
      with platform-encrypted credential storage and safe legacy migration,
      identity-checked read-only discovery for renamed hosts, no mutation replay,
      Once text default, half-stagger table, alternating columns and exact logical
      search/highlighting. Analyze and 12 tests pass; the release-mode preview
      APK builds. Production signing/physical mobile/full parity stay open.
    • Firmware/native/mobile source versions agree; local Windows release build,
      23 Rust tests, ten C++ suites, Web tests, CLI loopback and ledger tests pass.
      GitHub jobs additionally test/build Android preview and version/ledger gates.

    Actual native screenshots

    The 0.2.4 process was launched on David-PC. A secondary process forwards to
    the same primary PID; live IPC reports single-instance ownership, the dock
    panels, Preferences open and device/WebSocket/serial offline. The screenshot
    helper captures actual app windows, not mock UI. Preferences lives in a separate
    native viewport and was captured by its actual observed window title.

    Actual Pakar workspace with unavailable board state

    Actual Pealayer-derived Pakar native Preferences

    These receipts establish rendered native workspace/preferences, not complete
    Pealayer parity, light/narrow acceptance, hardware animation or Android visual
    acceptance. Those gates remain in PRODUCTION-ACCEPTANCE.md.

    Current external gate

    ASUS SSH at localhost:1022 refuses connections. ledboard.local is unresolved
    here and the former board IP times out. No current firmware upload, persistent
    device rename, Wi-Fi password change, TM1637/audio/strip verification, cloud
    round-trip or ASUS application launch is claimed. The newest user-provided
    station password will be used only during deployment; it is not put in GitHub.
    Restore ASUS/tunnel reachability to resume physical acceptance. Offline donor,
    TUI/Web/menu and parity work remains explicitly open in issue #2.

    The Android preview is still debug-signed; no production-signed mobile release
    is published. The master issue must not be closed by merging this checkpoint.

  2. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    PakarController 0.2.5 source checkpoint

    Refs #2.
    This is not the completed production acceptance or a hardware deployment.

    Implemented and locally verified

    • Fourteen catalog cues now run through the actual production player. The
      separately imported root PuzzleBoard 520 ms and 40LED setup 590 ms variations
      do not replace the default Puzzles 530 ms welcome. Native/Web/mobile require
      advertised AVR cues, based on a versioned HELLO; USB includes the catalog.
    • Wi-Fi+USB mode selects one route before each native action/network change;
      it no longer duplicates mutations. Explicit transport and stale serial
      observations are respected. Lost responses do not cause cross-route replay.
    • The existing MQTT broker's TLS identity and anonymous rejection passed.
      An exact ledboard ACL alias was staged/validated and hot-reloaded without
      changing passwords or other tenants. This is not ESP cloud round-trip proof.
      See deployment/mqtt/README.md for hashes and the server recovery copy.
    • ESP busy HIGH explicitly uses INPUT_PULLUP; receive-ready preloads LOW
      before output enable. Polling builds never touch that GPIO. AVR input
      INPUT_PULLUP remains enabled. Both macro variants build.
    • Production AVR TonePlayer keeps the donor's musical deadlines instead of
      accumulating loop delays. The welcome is exactly 530 ms in the source
      schedule; late steps, wraparound, hardware divider, queue capacity, mute,
      resume and idle readback are covered by register-double tests. Hardware
      OC1A output remains on D9; these tests are not an audible recording.
    • Actual PU850 Telnet IAC/subnegotiation parser and insert/shift editor are
      adapted, with acknowledgements that avoid negotiation loops. CSI/SS3,
      arrows/home/end/delete/backspace, Ctrl-C/Ctrl-L, split CR LF/NUL, password
      non-echo, scrubbing, overflow rejection and independent state are tested.
      A 96-byte service budget and login/idle expiry bound shell loop work.
    • All 14 Puzzles LocalLib files and its complete sketch have been manually
      read, with individual source hashes and honest remaining decisions. The
      broader donor inventory contains 1,868 files, 63 missing sparse paths and
      1,863 unresolved manual/integration decisions. Hash screening is not full
      review. The strict release gate intentionally blocks this scope.
    • Existing Android/Flutter source is preserved in GitHub, version 0.2.5,
      with platform-encrypted credential storage and safe legacy migration,
      identity-checked read-only discovery for renamed hosts, no mutation replay,
      Once text default, half-stagger table, alternating columns and exact logical
      search/highlighting. Analyze and 13 tests pass; the release-mode preview
      APK builds. Production signing/physical mobile/full parity stay open.
    • Firmware/native/mobile source versions agree; local Windows release build,
      25 Rust tests, ten C++ suites, Web tests, CLI loopback and ledger tests pass.
      GitHub jobs additionally test/build Android preview and version/ledger gates.

    Actual native screenshots

    The photographed 0.2.4 process was launched on David-PC. A secondary process forwards to
    the same primary PID; live IPC reports single-instance ownership, the dock
    panels, Preferences open and device/WebSocket/serial offline. The screenshot
    helper captures actual app windows, not mock UI. Preferences lives in a separate
    native viewport and was captured by its actual observed window title.

    Actual Pakar workspace with unavailable board state

    Actual Pealayer-derived Pakar native Preferences

    These receipts establish rendered native workspace/preferences, not complete
    Pealayer parity, light/narrow acceptance, hardware animation or Android visual
    acceptance. Those gates remain in PRODUCTION-ACCEPTANCE.md.
    These screenshots remain explicitly versioned 0.2.4 receipts, not screenshots
    of the additional 0.2.5 cue/routing changes or live board acceptance.

    Current external gate

    ASUS SSH at localhost:1022 refuses connections. ledboard.local is unresolved
    here and the former board IP times out. No current firmware upload, persistent
    device rename, Wi-Fi password change, TM1637/audio/strip verification, cloud
    round-trip or ASUS application launch is claimed. The newest user-provided
    station password will be used only during deployment; it is not put in GitHub.
    Restore ASUS/tunnel reachability to resume physical acceptance. Offline donor,
    TUI/Web/menu and parity work remains explicitly open in issue #2.

    The Android preview is still debug-signed; no production-signed mobile release
    is published. The master issue must not be closed by merging this checkpoint.

  3. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    PakarController 0.2.5 source checkpoint

    Refs #2.
    This is not the completed production acceptance or a hardware deployment.

    Implemented and locally verified

    • Fourteen catalog cues now run through the actual production player. The
      separately imported root PuzzleBoard 520 ms and 40LED setup 590 ms variations
      do not replace the default Puzzles 530 ms welcome. Native/Web/mobile require
      advertised AVR cues, based on a versioned HELLO; USB includes the catalog.
    • Wi-Fi+USB mode selects one route before each native action/network change;
      it no longer duplicates mutations. Explicit transport and stale serial
      observations are respected. Lost responses do not cause cross-route replay.
    • Late HTTP/WebSocket observations are bound to their requested endpoint and
      credentials; serial observations and queued commands are bound to the port.
      Changing a destination clears old state rather than refreshing it with a
      previous peer's delayed reply. Regression tests cover endpoint/credential/port.
    • Native rainbow and primary-screen sampling share a configurable target rate:
      60 FPS default, 0 uncapped, up to 240 requested. The hidden 25 FPS rainbow and
      8 FPS sampler delays are gone. Frame capture/write time is deducted from the
      pacing budget; no catch-up frame queue. Sent-rate UI is not LED-refresh proof.
    • Primary-screen sampling now uses the complete board-advertised physical map
      instead of guessing the old serpentine order, and samples one-based odd
      columns with the +0.5-row geometry. Missing/duplicate/out-of-range maps disable
      sampling; bounds and swapped physical cells are tested. Monitor/region
      selection and live sampler acceptance still remain open.
    • Normal first AVR handshake no longer replaces its welcome with an ESP
      update-success cue. Explicit successful OTA/ISP paths retain audible cues.
      The source boot-routing regression passes; audible acceptance remains open.
    • The table footer no longer overlaps the lowest half-staggered row; egui
      geometry regression covers multiple cell sizes, followed by actual capture.
    • The existing MQTT broker's TLS identity and anonymous rejection passed.
      An exact ledboard ACL alias was staged/validated and hot-reloaded without
      changing passwords or other tenants. This is not ESP cloud round-trip proof.
      See deployment/mqtt/README.md for hashes and the server recovery copy.
      Its served chain also validates using only the exact CA embedded in the ESP,
      with PC default stores disabled. This is not an ESP BearSSL handshake test.
    • ESP busy HIGH explicitly uses INPUT_PULLUP; receive-ready preloads LOW
      before output enable. Polling builds never touch that GPIO. AVR input
      INPUT_PULLUP remains enabled. Both macro variants build.
    • Production AVR TonePlayer keeps the donor's musical deadlines instead of
      accumulating loop delays. The welcome is exactly 530 ms in the source
      schedule; late steps, wraparound, hardware divider, queue capacity, mute,
      resume and idle readback are covered by register-double tests. Hardware
      OC1A output remains on D9; these tests are not an audible recording.
    • Actual PU850 Telnet IAC/subnegotiation parser and insert/shift editor are
      adapted, with acknowledgements that avoid negotiation loops. CSI/SS3,
      arrows/home/end/delete/backspace, Ctrl-C/Ctrl-L, split CR LF/NUL, password
      non-echo, scrubbing, overflow rejection and independent state are tested.
      A 96-byte service budget and login/idle expiry bound shell loop work.
    • All 14 Puzzles LocalLib files and its complete sketch have been manually
      read, with individual source hashes and honest remaining decisions. The
      broader donor inventory contains 1,868 files, 63 missing sparse paths and
      1,863 unresolved manual/integration decisions. Hash screening is not full
      review. The strict release gate intentionally blocks this scope.
    • Existing Android/Flutter source is preserved in GitHub, version 0.2.5,
      with platform-encrypted credential storage and safe legacy migration,
      identity-checked read-only discovery for renamed hosts, no mutation replay,
      Once text default, half-stagger table, alternating columns and exact logical
      search/highlighting. Analyze and 13 tests pass; the release-mode preview
      APK builds. Production signing/physical mobile/full parity stay open.
    • Firmware/native/mobile source versions agree; local Windows release build,
      30 Rust tests, ten C++ suites, Web/boot-routing tests, CLI loopback and ledger tests pass.
      GitHub jobs additionally test/build Android preview and version/ledger gates.

    Actual native screenshots

    The photographed 0.2.5 process was launched on David-PC. A secondary process forwards to
    the same primary PID; live IPC reports single-instance ownership, the dock
    panels, Preferences open and device/WebSocket/serial offline. The screenshot
    helper captures actual app windows, not mock UI. Preferences lives in a separate
    native viewport and was captured by its actual observed window title.
    Live IPC reports the saved client endpoint http://ledboard.local, PID 73508
    and version 0.2.5. That client preference is not a deployed board rename.

    Actual Pakar workspace with unavailable board state

    Actual Pealayer-derived Pakar native Preferences

    Actual configurable native stream rate and truthful offline controls

    These receipts establish rendered native workspace/preferences, not complete
    Pealayer parity, light/narrow acceptance, hardware animation or Android visual
    acceptance. Those gates remain in PRODUCTION-ACCEPTANCE.md.
    These are updated 0.2.5 receipts. The previous 0.2.4 screenshots remain in Git
    history at 76bf399; neither set establishes live board acceptance.

    Current external gate

    ASUS SSH at localhost:1022 refuses connections. ledboard.local is unresolved
    here and the former board IP times out. No current firmware upload, persistent
    device rename, Wi-Fi password change, TM1637/audio/strip verification, cloud
    round-trip or ASUS application launch is claimed. The newest user-provided
    station password will be used only during deployment; it is not put in GitHub.
    Restore ASUS/tunnel reachability to resume physical acceptance. Offline donor,
    TUI/Web/menu and parity work remains explicitly open in issue #2.

    The Android preview is still debug-signed; no production-signed mobile release
    is published. The master issue must not be closed by merging this checkpoint.

    Exact checkpoint receipts

    Latest source: f190c9c. Local: 30 native tests/release build, 10 C++ suites, Web and boot-routing tests, CLI loopback, both firmware builds, version and ledger checks pass. Strict production donor gate still fails with 1863 unresolved rows, correctly.

    Previous 695a91f exact-head CI succeeded on both push and PR (all three jobs). Latest-head CI is running/queued; not yet a green claim. Keep this PR draft until that source checkpoint is verified. Do not close #2 or publish a production release merely because source CI passes.

    Current local app: 0.2.5, PID 65928, saved endpoint http://ledboard.local, single-instance true, Preferences open; board/USB/WebSocket offline. Screenshots above were captured from the 0.2.5 process PID 73508 before the sampler mapping follow-up, so they are visual receipts rather than tests of that follow-up's behavior. ASUS SSH remains connection-refused.

  4. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Published audit checkpoint e4818af: e4818af

    Complete inventory: 1,868 paths. Complete comparative evidence: 26 files (4 byte-identical, 2 behavior-equivalent, 4 scoped improvements, 16 files with gaps). 1,842 remain pending, including sparse files; no unreviewed code is approved for omission. Exact source/target hashes, lines, code omissions and concrete reasons are in docs/FILE-COMPARISON.md, docs/file-comparison.csv and docs/file-comparison-evidence.json. Execution receipts: docs/FILE-COMPARISON-RECEIPTS.md.

    42 native tests, 10 C++ suites, Web/boot/version/audit checks passed locally. Restored actual eleven Pealayer picker tests. Strict comparison gate correctly fails while gaps remain. Added audit checks to CI; this commit's new CI is pending, not yet certified.

    Continuation/checklist: #3; master production acceptance #2 and draft PR #1 remain open. Prior integration pointers were corrected; current TM1637 ACK/recovery, generic Puzzles Tasks/key contracts, native/Web appearance and PU shell/config/event omissions are explicitly actionable. No new live firmware or physical acceptance claim.

  5. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Native device settings checkpoint pushed: 1cf3da0. Implementation/remaining acceptance checkboxes are in issue #4.

    • 60 native tests and the locked release build pass. Existing Web display/access, boot audio, CLI loopback, ledger/comparison and source-version checks pass locally.
    • Actual Pealayer-derived settings center: ten grouped/searchable domains, public network/cloud readback, explicit secret semantics, dirty/conflict/peer/close guards, USB provisioning, integrated guarded ISP/backup/export/program/latch recovery/ESP OTA, single-instance deep links.
    • Exact controls, files, limits and receipts: DEVICE-SETTINGS.md.
    • Inspected actual rendered Wi-Fi and MQTT. These are SIMULATED read-only loopback peer renders, not real-board proof; production CLI/IPC navigation, isolated profile and owned PID were checked.
    • Updated app reopened with the unchanged real user preferences at http://ledboard.local, PID 82564. Exe SHA-256: 433d3340c32d50f085c0a212bed03479c71d37c4014a2fdcca736beab9113d00.
    • ASUS SSH localhost:1022 refused connection; device hostname did not resolve. No board write, physical save/ISP/OTA/audio/electrical acceptance or second-PC deployment is claimed. Firmware artifacts were not replaced or flashed.
    • CI for this exact source is in progress: 38035712949, 38035709761. Prior e4818af runs are green but do not certify this settings commit.
    • Donor audit remains 1868 inventoried, 26 hash-bound comparisons, 1842 pending and 16 known gaps. The unchanged workspace picker call/test was rereviewed and its shell target hash rebound; no pending donor files were silently promoted.

    Remaining Web/mobile/device parameter contracts, narrower/light/embedded interaction acceptance, physical hardware and full donor superiority stay unchecked. Draft PR #1 remains draft; this is not final production certification.

  6. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Exact settings source 1cf3da0 is now fully green in both 38035712949 and 38035709761: Windows native tests/build, both firmware macro variants/protocol tests and Android preview tests/build.

    The local 60-test native suite, inspected simulated-peer renders, binary hash, clean published repo and preserved real-profile runtime are documented in the earlier checkpoint. Native settings implementation/CI boxes are checked in #4. Physical saves, ISP/OTA/reboot/electrical acceptance, ASUS deployment, wider interaction/all-surface parity and the full donor backlog remain unchecked. PR #1 remains draft; green CI is not physical or full production certification.

  7. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Native Windows notifications are restored and running locally in
    4cb874b.
    Seventy Rust tests pass. The final owned-process smoke recorded two accepted
    and two shown Shell notifications, zero failures, unchanged preferences and
    the real ledboard.local profile. Fullscreen toggled and restored in that owner.

    Both exact-commit CI runs passed every Windows, firmware and Android job:
    PR run,
    push run.

    Issue #5 owns the native
    acceptance and remaining desktop checkboxes. The exact file audit
    maps actual donor code and explains omissions. The full ledger now has 31
    complete-file comparisons, 1837 pending and 18 known gap files. Configurable/global
    shortcuts, shared preference/notification surfaces, updater, full icon/window
    integration and remaining diagnostics are still open, not business exclusions.

    ASUS SSH still refuses localhost:1022; the device is offline. No board flash,
    EEPROM or device-setting write occurred. Banner click/hidden-window and complete
    physical acceptance remain unverified. PR #1 remains draft; no full-production
    or whole-repository-superiority claim is made.

  8. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Current-hardware PCController contract checkpoint e75a26a is tracked in #6 with separate source/build and physical/surface acceptance checkboxes. Does not close the broader #3/#4/#5 backlog or certify production completion.

  9. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Current-hardware contracts checkpoint and exact exclusions are tracked in #6, commit 11cf029. Both busy-wire and polling firmware build locally, versions match 0.2.6, and candidate outputs preserve the existing production app. No physical flash/EEPROM or production rollout occurred. This does not close donor-wide parity, future drivers, cross-owner LED macros or all-surface GUI acceptance. Final CI: https://github.com/atomicdeploy/PakarController/actions/runs/38045516420 .

  10. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Remote firmware + telemetry + PU850 route feature checkpoint 01a898e is tracked in #7 with explicit completed/open checkboxes. Existing broader donor/UI/mobile and physical production acceptance are not closed by this feature. Draft PR #1 retains all changes.

  11. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Published ecf882d (ecf882d). This is a durable reuse-process and actual-tool import checkpoint, not full production acceptance. Same source/evidence ledger: 1868 files, 39 compared, 1829 pending, 21 reviewed gaps. Exhaustive lookup exposes all paths; specialist routes miss 1338 (309 Pealayer). Exact omission code/reason/disposition and issue routing now appear directly in lookup/report. Actual Pealayer crate/resource guard runs before native build and in CI. Local routing/hash/gate/adversarial, readonly report, storage-plan and six crate/resource negative tests passed. Canonical Pealayer clean; all 493 live hashes match. No compiler, package copy, cache cleanup, firmware write or app replacement. See docs/REUSE-PREFLIGHT-RECEIPT.md for exact consultation and next-file queue. Master remains open; CI for this new commit has not yet been accepted.

  12. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Checkpoint e0f0839 (draft PR #1), pushed and clean. Actual Pealayer appearance.ts functions and four donor tests imported; shared palette embedding/stale-generation gate, themed browser preferences, fixed geometry/amber highlight, alternate cell surfaces and responsive shrink behavior. Ten appearance plus existing Web/audit tests pass; screenshots are read-only SIMULATED loopback, not the native app or a board. Actual new Pealayer storage summary/equality code imported; build preflight caught concurrent donor drift before compiling, then exact changed sources were reread and hash-bound. 1,869 donor files / 42 compared / 1,827 pending / 23 reviewed gap files; Pealayer 494 / 20 / 474 / 10. App/styles full-read notes do not certify full-file parity. Native/Web/mobile live appearance transport, remaining generic donor tools/UI and physical acceptance remain open. Affected ESP busy-wire compile passed with CI-locked dependency versions; no flash. ASUS SSH refused and ledboard.local did not resolve. Native/Android/AVR/donor builds, running app and private preferences untouched; no blocked cleanup rerouted. Prior ecf882d runs 38059703363/38059700392 passed all jobs, not proof of this new commit. Exact mappings/recovery/limits: docs/WEB-APPEARANCE.md, docs/FILE-COMPARISON-RECEIPTS.md, docs/REUSE-PREFLIGHT-RECEIPT.md.

  13. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Mobile settings/context continuation in 8b32e4b: actual Wi-Fi/cloud/identity/access editors, ACK/readback and captured-owner auth/rename handoffs; 46 passing Flutter tests, inspected phone/tablet simulated renderer, warm preview APK only (debug signing). Full mapping/remaining checklist in #4 and MOBILE-SETTINGS.md. All source quality passes; no CI wait, real-board write, native app replacement or complete production claim. Mobile firmware/localization/appearance/physical/signing and exhaustive donor acceptance remain unchecked.

  14. atomicdeploy commented on Oct 10, 2026

    @atomicdeploy
    OwnerAuthor

    Production progress checkpoint 5f00df3: real mobile firmware/ISP/full backup/document workflows, 73 passing Flutter tests, inspected zero-mutation phone/tablet renderer evidence and compiled preview APK. Exact safety/mapping and remaining acceptance on #7/#4/#3 and docs/MOBILE-FIRMWARE.md. Prior apps/settings/previews/hardware preserved, source versions 0.2.7. No CI wait. Main goal remains unfinished: native runtime, ASUS/LAN/physical flashing/peripheral/power-loss, actual Android/provider/signing, remaining donor and UI parity still require completion.

  15. 138 remaining items

  16. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web correction address-controls checkpoint:

    • Added bounded +/- per-row Pixel and signed Offset controls, proper named square icon actions and disabled limits. Invalid typed drafts remain local and can be recovered by stepping; no implicit board writes or timed previews.
    • Reused actual Flutter pixelCorrectionSources/pixelCorrectionAddress projection and reread the full Pealayer NumericValueControl donor. Rule hints identify output wire, projected raw pixel, physical group and approximate logical cell or key box/button/indicator.
    • Existing logical mapping owner is reused. Prior black/remove/positive or negative shift/disabled rules and custom group counts are respected; missing/stale layout or logical maps do not silently invent six-pixel identities.
    • Focused DOM/projection tests pass bounds, invalid input recovery, no-write behavior, remapped/custom groups, stale-map rejection and box5 group identity. Unrelated live status does not recompute/repaint address hints. Canonical contracts, appearance10 and single-source checks pass.
    • Full/onboard Web packages identical: HTML85de040bcd0a0706f78abf7fe3cdc3018dd6a469bcdac772e9515b366253ddf3;465627 raw /131278 gzip bytes. Low-write Web-only builds; shared generator's translation guard retained and explicit action labels fixed its initial failure.
    • Actual rendered new-control alignment, responsive/RTL/touch and board save/readback remain open. Known browser-input stall was not retried blindly; no fixture screenshot is claimed as hardware proof.

    Same ledger/receipts updated with exact source/generated/test hashes and concrete donor omissions. No production board contact, deployment, reboot/reset or output change; no native/APK/firmware builds. Mixed workspace preserved, no blanket stage/commit.

  17. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web pixel-tools navigation bug fixed (source/DOM checkpoint):

    • Found actual duplicate dispatch: feature-workspaces reveal called the injected handler with its card, then Studio reveal again without a target. The second call selects All panels and overrides the requested Diagnostics/Corrections page.
    • Now dispatch exactly once through the supplied handler OR existing fallback, always with the exact target; scroll once. No second router/state owner.
    • Regression tests invoke actual linked diagnostics/corrections handlers and verify both injected and fallback routes, exact target and no targetless dispatch. Existing feature workspace, canonical app and single-source checks pass.
    • Complete actual PCController CardLayoutEditor/Frame donor reread; explicit onShow(id)/owned callback convention retained. Direct donor SHA256 de67f2ac9dd8037e354b98227616ed8c207379dbc8205692587bc07a6392be83 matches inventory despite generic root lookup unavailable. Existing ledger/receipts updated, broader layout omissions remain open.
    • Full/onboard canonical HTML identical:1767973a323defd91a260c76b0b688b4f9c69b3a03c68cafe85a00179b20730a;465654 raw /131282 gzip bytes. Only Web assets built.
    • Browser-input failure remains separate: visible preview and bounded mouse/Enter test still left Controls selected and focus unchanged. No rendered interaction acceptance or claim that this source bug explains all input failures.

    No production board contact, update, reboot/reset or actuation. No native/APK/firmware build. Mixed workspace preserved and scoped proof hashes refreshed; no blanket stage/commit. Production acceptance issue remains open.

  18. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web correction cursor-import checkpoint:

    • Added a compact per-rule Use selected cursor icon action with cursor number and rule in its tooltip/accessible name. It edits only the local correction pixel field; no diagnostic, preview or configuration command is sent.
    • Reuses actual Flutter selectedDiagnosticPixel/importPixel behavior and existing bounded numeric controls. Copies the OUTPUT cursor, not projected raw/lit source; no duplicate cursor owner or polling.
    • Focused checks pass cursor21 versus projected raw22, unsent selected34 surviving newer live observations, invalid-input rejection, absent-capability hiding, and a retired old-row callback unable to edit the replacement boot's draft. Existing correction/navigation/diagnostic contracts pass.
    • Full/onboard canonical HTML match:a060ca166d746dc1efcea9312c6fa5abbced808c2ebe22e15d66559a6e687bf3;467596 raw /131809 gzip bytes. Single-source and canonical app checks pass. Only Web assets built; same donor ledger/receipts refreshed with exact source/test hashes.
    • Rendered responsive/focus/touch/RTL and actual board save/readback remain open under the already-recorded browser-input blocker. No new visual or physical success is inferred.

    No production board contact, update, reboot/reset or actuation; no native/APK/firmware build. Mixed workspace preserved; no blanket stage/commit. Production acceptance remains open.

  19. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web workspace routing checkpoint:

    • Fully reread actual Pealayer App.tsx and adapted surfaceFromLocation/setActiveTab/followLocation into the existing Studio owner: explicit fragment allowlist, same path/query/state, equal-history skip, hashchange/popstate, pending selection until acknowledged panels arrive. No second Web app/router, card recreation, command or mode change.
    • Supported links: #/controls, #/diagnostics, #/effects, #/hardware, #/api, #/all. Network/Firmware modal-only settings are deliberately excluded until draft-safe modal history is implemented; existing settings behavior is retained.
    • New route/navigation/capability tests pass, as do workspace persistence, control presentation, feature workspaces, canonical app and single-source tests. Route test added to existing quality phase, preserving prior CI edits; full CI was not run.
    • Fresh http://localhost:63200/#/diagnostics actually rendered Diagnostics at1280x720 with the existing correction/diagnostic cards and current fixture state. Screenshot outputs/PakarController/web-routed-diagnostics-desktop.png SHA256e14a8a470f6ef6637d07aab03f665c2ee641245124a8ad94fac35f7febecb031. It captures the first route candidate2695f007; final candidate only narrows modal-only allowlist/comments with unchanged Diagnostics DOM/CSS.
    • Final full/onboard HTML match:f3d45e1a8ac382bf677e856621c305dff401642477bc7d356a60d4ec56e8f1d1;469180 raw /132356 gzip bytes. Only affected Web assets built.
    • Browser click/real Back-Forward and phone/tablet/RTL remain open. Add rule still did not change state. Documented viewport set timed out, then its reset timed out; override restoration is unverified. No blind retries or alternate driver used.

    Exact donor/target/test hashes and omissions updated in the existing ledger/receipts. Screenshot is simulated desktop route-render evidence, not optical/device acceptance. No production board contact, update, reboot/reset or actuation, no APK/native/firmware build. Mixed workspace preserved; production acceptance remains open.

  20. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Shared canonical Web dialog checkpoint — local candidate

    • Reread actual Pealayer web_ui/src/components/EffectGroupDialog.tsx through EOF; live SHA256 matches the ledger. Adapted localized actions, deliberate focus and dismissal lifecycle into the existing HTML dialog, without another Web application/framework or transport owner.
    • Linked accessible descriptions and localized close labels. Correction discard initially focuses Cancel; command palette initially focuses search.
    • Prevented duplicate asynchronous footer actions; busy/disabled states recover after failure. Retired controls and late completions cannot run another action or resurrect the dialog. Peer-retirement close remains available.
    • Actual-component DOM test added to quality CI. Focused dialog, feature-workspace, canonical app, controls, utility, routes and single-source checks passed. CI runner syntax and both low-write build checks passed; not a full CI run.
    • One canonical HTML for full/onboard: SHA256 02cd620b98e81e6fce4ace17362a5d9feaf70f4fe511a135bf2c218143d0ef21, 470074 raw / 132630 gzip bytes. Original 221 control IDs and 292 named functions retained. Local preview reads the refreshed canonical assets.
    • Native browser Escape/focus trapping, touch and Persian RTL visual acceptance remain open: the existing browser input/viewport stall was not blindly retried or bypassed. DOM checks are not rendered acceptance.
    • These are preserved local mixed-worktree changes, not a new published source commit or production deployment. No production board contact, flash, reset, actuation, APK/native rebuild or app replacement occurred.

    Existing authoritative donor/parity ledgers and receipts updated; production acceptance stays open.

  21. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web pixel-group discard guard — local checkpoint

    • Removed the remaining blocking browser confirmation from the pixel-group Reload workflow; it now uses the same localized shared dialog as corrections, with Cancel initially focused.
    • Actual workspace tests verify Cancel/dismiss retains edits, one prompt owns the draft, approval only reads saved configuration, late old-boot approval cannot read the replacement peer, and capability loss/disposal retires the prompt. Missing dialog support fails closed. No configuration write/diagnostic preview is emitted by confirmation.
    • Reread the complete actual Pealayer EffectGroupDialog and Flutter group editor, plus the actual correction reload guard; extended the same hash-bound donor/parity ledgers and receipts.
    • Focused workspace/dialog/canonical-app/single-source tests and full/onboard low-write builds passed. Both HTML packages match SHA256 e349b48a13230944837ca36ba5c9ffde8423a937d06a24dc1082e4e9363f5933, 471348 raw / 132686 gzip bytes; 221 original IDs and 292 named functions retained. Canonical preview assets refreshed.
    • Rendered keyboard/touch/Persian RTL acceptance remains blocked by the recorded browser input/viewport stall; no retry loop or alternate driver bypass. Tests are DOM/source evidence, not physical acceptance.
    • Preserved local mixed-worktree candidate, not a new pushed commit or deployed firmware. No production board contact, update/reset/actuation, or unrelated client/firmware build.

    Production and complete donor parity remain open.

  22. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Fixed reproduced cross-session pixel-group draft mutation

    • Regression failed before the fix: an old boot's retained Use default callback removed group 1 from the replacement draft ([5,7] became [7]).
    • Input, +/- and reset callbacks now require captured peer/boot, model, render generation, row identity and current nonbusy ownership. Actual old-boot and same-peer retired-render tests pass; no board command is emitted by these local edits.
    • Reread complete actual Pealayer NumericValueControl and PCController pwm_control; canonical checkout hashes match inventory. Kept the same authoritative evidence/parity ledgers.
    • Focused workspace/app/control/single-source tests and full/onboard builds passed: identical HTML SHA256 8b5fa957edfced5e5783c9b2b412cf15d1c177f9a3d7a9c4253bebe0027d223c, 471643 raw / 132769 gzip bytes.
    • Read-only browser inventory, accessibility state and desktop screenshot respond again. Fresh canonical Diagnostics preview inspected; no input/viewport retry. Its static pixels match the prior desktop capture, not a new interactive group-editor acceptance.
    • Browser keyboard/touch/RTL, group editor rendering and viewport-restoration acceptance remain open. Simulated screenshot/DOM tests are not hardware proof.
    • Source is preserved local mixed-worktree candidate, not a pushed source commit or deployed firmware. No production board contact, flash, reset or actuation; no unrelated component builds.
  23. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Fixed pixel-group incomplete-input loss — local Web candidate

    • Reproduced before fixing: a cleared count silently reverted to 5 when adding another group redrew the editor.
    • Typed values now remain owned local drafts across structural redraw and leaving/returning to the original peer. Empty, zero, out-of-range and fractional values remain visible with aria-invalid; Save is blocked by model validation as well as button state. A retained Save callback cannot bypass validation.
    • Explicit +/- recovers from the last valid value. Verified valid Save sends only normalized numeric overrides, never local typed strings. New validation copy is translated to Persian.
    • Actual workspace regressions, canonical app and single-source checks pass. Complete Pealayer NumericValueControl and canonical PCController pwm_control reread; same hash-bound ledger updated. Full/onboard HTML is identical SHA256 965afecb7ce963a324a95380032e49f8cca316cdbf5aecc67e1f72bae4378976 (472096 raw / 132888 gzip bytes).
    • Rendered input/keyboard/touch/RTL and actual board acceptance remain open. Canonical preview assets refreshed; no production board contact, flash/reset/actuation, unrelated builds or app replacement.
    • Changes are preserved local mixed-worktree work, not a newly published source commit or deployment. Complete Web/donor production acceptance is not claimed.
  24. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Correction editor: retained drafts and owned row actions

    • Reproduced a cleared correction pixel silently reverting to 1 after Add rule. Pixel/offset text now persists with its rule through redraw, reorder and leaving/returning to the original peer.
    • Model validation and UI state block invalid Save; payloads contain only canonical rule fields, not local draft strings. Valid explicit Save/readback remains covered.
    • Toggle, operation, numeric input, stepper, cursor, reorder and delete callbacks are fenced to their original peer/model/rendered row. Tests exercise old-session callbacks, a retired same-peer delete, reordered incomplete address/offset values and normalized commits.
    • Focused workspace/app/single-source tests and full/onboard builds pass, identical HTML SHA256 88646a90247cf18d3d4ef508bf0beaa4d15d4745c36f926ecb49001d4b7e0ce1, 473054 raw / 133137 gzip bytes. Actual complete Pealayer NumericValueControl reread; existing ledger/receipt refreshed selectively.
    • Web live correction-preview parity with Flutter remains unimplemented: explicit opt-in, peer/revision/lease ownership, authoritative observation and stop/disconnect/disposal lifecycle are required. Local editing is not an LED preview.
    • Rendered keyboard/touch/RTL and production acceptance remain open. Canonical preview assets refreshed; no production board contact, flash, reboot, reset, actuation or unrelated builds. Local mixed-worktree candidate, not a newly pushed commit or deployment.
  25. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Added explicit local Draft/Applied wire-map comparison

    • Reused the existing actual Flutter pixelCorrectionSources port after reading the complete current editor and mappingPreview method. Applied map retains board-provided sources; Draft map projects local ordered/enabled rules, never masquerading as output observation.
    • Invalid drafts clear stale projection; filter/no-results and per-peer view selection work. Closed maps avoid building hidden pixel tiles. Tests verify ordered black/shift behavior, per-rule disable, distinct applied data, invalid preview clearing, peer return and zero GET/command counts for preview operations.
    • Focused workspace/app/control/single-source tests and matching full/onboard builds pass: HTML SHA256 58013d068a6e257ceedf180b4383b92608db77bbbcfc1067cd574465dcbcf707, 475196 raw / 133647 gzip bytes. New copy includes Persian translations; same ledger updated.
    • Refreshed owned draft-free canonical preview; current AX/screenshot shows Wire map entry. Screenshot SHA256 425f4b6d94957193cc0dfacbdcd664e2c440a8aca66aa6cb45a30da8370b1830.
    • Its advertised Expand action returned without opening the disclosure. Stopped input retries and requested one manual Wire map → Draft map opening for visual inspection. Expanded keyboard/touch/RTL layout is not accepted by the collapsed screenshot.
    • Complete Flutter circular raw-RGB/focused-window diagram parity and opt-in live board-preview leases remain pending. This feature is local calculation only.
    • Local preserved mixed-worktree candidate, not a newly pushed commit or deployed firmware. No production board contact, reset/flash/actuation or unrelated builds.
  26. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Web parity: board-owned advanced pixel diagnostics

    • Added capability-gated Advanced probe controls for Solid/Flash/Breathing/Rainbow, Solo/Overlay, period, duty and brightness range. Editing is local; explicit Show uses the existing WS-first command owner. No client animation, streaming loop or second renderer.
    • Reused actual full Flutter pixel_diagnostic.dart and commandPacket function against current firmware PixelDiagnostic/receipt contracts. Shared transport now validates and types these optional fields correctly.
    • Strict extended observation/revision/specification readback and published-frame observation are required. Pending publication gets at most one pinned read-only snapshot, never another mutation. Mismatched timing and permanently unpublished frames cannot claim success.
    • All off deliberately sends clear/solid default options even when a local animation draft is invalid or Overlay was selected. Missing overlay capability fails closed instead of silently switching to Solo.
    • Focused workspace/transport/app/control/routes/state-presentation/single-source tests and matching full/onboard builds pass: HTML SHA256 e2cd8c995230842e89017138ad38145a522cb5363185c9b4a436aabb726fb81a, 483439 raw / 135766 gzip bytes. Shared Persian copy added and exact generated-dictionary bindings repaired without weakening the ledger gate.
    • Rendered Advanced controls, keyboard/touch/RTL, actual remote timing and physical LED acceptance remain open. Current simulated fixture does not advertise advanced capabilities; manual Wire map opening request is still outstanding. No production board contact or actuation/update/reset.
    • Preserved local mixed-worktree candidate, not a newly pushed source commit or deployed firmware; no unrelated client/firmware builds. Complete production acceptance is not claimed.
  27. atomicdeploy commented on Oct 25, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web checkpoint: durable diagnostic drafts

    • Adapted the fully reread Pealayer src/ui/workspace_profiles.rs stable-ID ownership and actual Flutter PixelDiagnosticWorkspace constructor/snapshot slice. Existing board/application workspace writer remains the only persistence owner.
    • Local cursor, group, color and advanced timing/effect drafts survive reload/reboot; incomplete bounded numeric input remains editable. Restored values are local drafts, not observed output. Pending commands, observations, revisions and secrets are excluded.
    • Actual module/core DOM-storage tests cover malicious fields, board/application isolation, owner-transition fallback, zero restore requests and zero durable writes from live observations. App/control/route/transport/state and canonical-source guards pass.
    • Full/onboard packages and generated headers match the ONE canonical source: HTML SHA256 85662691a9bd6fb4376ea584cad4a1232be0597395a5784c34790588b0e3c59f, 486250 raw /136805 gzip bytes. Subsequent --check builds require no writes. Existing 221 controls and 292 named functions retained.
    • Hash-bound ledger regenerated successfully: 391 comparisons /4697 inventoried files, 4306 pending, 289 known parity gaps. Detailed source/target/test hashes and omissions remain in the existing evidence ledger and receipts.
    • Existing simulated preview refreshed and screenshot inspected at1280x720. Basic layout intentionally unchanged; screenshot hash 425f4b6d94957193cc0dfacbdcd664e2c440a8aca66aa6cb45a30da8370b1830 is not evidence of expanded controls or successful browser input.
    • Browser input/expanded responsive/RTL/touch acceptance remains blocked by the previously observed nonresponsive automation. No repeated blind input, draft overwrite or alternative driver used.
    • Broad donor parity, real reconnect/storage behavior and production hardware acceptance remain open. No board contact, firmware build/flash/reboot, app installation or physical output claim in this UI-only checkpoint.

    These are LOCAL candidates in the preserved mixed workspace on base 8ce8f29, not a newly committed/pushed source revision or deployment. The master production issue remains open. Initial package equality failure was only the stale onboard output after building full; building that missing profile from the same source resolved it without changing the guard.

  28. atomicdeploy commented on Oct 26, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical Web: correction diagrams, rule windows and durable pixel-tool presentation

    GitHub metadata access recovered through the previously authorized local proxy. Fresh comments confirmed the circle and rule-window checkpoints were not posted, so this consolidates those local checkpoints with the current persistence work.

    • Actual Flutter PixelCorrectionDiagram/operationOption/observedRgb and Pealayer/PCController donor code consulted with exact hash-bound evidence. ONE canonical Web source/runtime remains; no second NG app, renderer, connection or persistence writer.
    • Fixed-size wire/source circles, crossed black, dashed unknown RGB and contrast-aware ink. Published raw-scene colors require current peer, completed frame, exact capacity, valid numeric/hex fields and matching acknowledged group topology. Pending/malformed/stale values do not appear as observations.
    • Compact optional per-rule six-slot windows project preceding rules through the current rule, not later edits. Actual enable flags honored; invalid current/prior drafts clear dependent windows. Descriptions include Persian copy. Live color updates retain nodes; closed views remain lazy. Local previews issue ZERO extra requests, subscriptions or commands.
    • Existing board/application workspace writer now persists map view/open/filter, Advanced disclosure and expanded rule fingerprints. Duplicate occurrences are distinguished; only freshly verified rules may match. Changed rules do not inherit an unrelated view. Presentation never becomes configuration, observation, authority or pending actuation. Delayed restore toggles and equal snapshots do not write.
    • Actual module/core DOM/storage tests cover prefix windows, invalid dependency clearing, retired callbacks, no dirty-on-expand, canonical payload exclusion, color/topology validation, stable nodes, reload/reboot, duplicate/changed rules, secret exclusion, owner transitions and board/application isolation. Focused app/control/workspace and single-source checks pass.
    • Full/onboard packages and generated headers match canonical HTML SHA256 64ff59a7b22d89162c426e99ee8a6f0fd9a947c58143a8d76d462b5ebca2f601,499133 raw/140362 gzip bytes;221 original controls/292 named functions retained. Only affected Web assets built, warm assets reused.
    • Existing evidence ledger/receipts updated and generation passes:391 hash-bound comparisons/4697files,4306pending,289known parity gaps. These counts are not total parity.
    • Expanded browser/keyboard/touch/RTL and actual-browser restore acceptance remain blocked by the existing nonresponsive browser-input path. Refreshed collapsed-entry screenshot is NOT proof of expanded diagrams; rich per-option operation menus and opt-in live board-preview leases remain open.
    • Real device/physical output, all donor parity and release acceptance remain OPEN. No production board contact, flash/reboot/reset/actuation, firmware build, or native/Android installation in these UI-only passes.

    LOCAL mixed-workspace candidates on base 8ce8f29, NOT newly committed/pushed source or deployed firmware. Do not close the master issue. Exact source/target/test bindings and concrete remaining work are in file-comparison-evidence.json, WEB-PARITY.json and FILE-COMPARISON-RECEIPTS.md.

  29. atomicdeploy commented on Oct 27, 2026

    @atomicdeploy
    OwnerAuthor

    Source handoff status (not deployment/physical acceptance):

    No production board, installed desktop app or Android package was changed for this Git synchronization. Existing donor gaps and physical acceptance remain open; the source handoff does not close this production issue.

    Verified source checks: https://github.com/atomicdeploy/PakarController/actions/runs/40508742014 and https://github.com/atomicdeploy/PakarController/actions/runs/40508742015 . The final handoff audit/README receipt is metadata-only; its post-merge CI is separate. No production deployment or complete donor/physical acceptance is inferred.

  30. atomicdeploy commented on Oct 29, 2026

    @atomicdeploy
    OwnerAuthor

    PR37/38/39 source consolidation complete

    Normal merges: #39 as1dce537, #38 as60722dcc, #37 as5376d188. The final application tree exactly matches accepted3827676935bfed8767caf180dcb3d5651ddb62dc. Original feature/source heads remain ancestors; the other owner's clean worktree and private recovery data are preserved. No force push, lost draft, silently closed PR or check bypass.

    Full diff/conversation review included every comment/review/thread page; refreshed contents were unchanged before merge. No completed Copilot review is claimed. Integration retains both SSH command-only suppression and the themed prompt, adds the two actual session fields to the workspace fixture, and repairs the BLE negative fixture so it proves a mutation actually occurred on LF/CRLF input. All donor receipt appendices, source revisions, omissions and reviewed hash references survive.

    Accepted checks: Build40828106391, CodeQL40828106286, standalone finding check. 505 Rust tests, Windows package, Android analysis/tests/APK, all S3/AVR profiles, resource budgets, repository/Web/ledger contracts and three-host tooling pass. Draft release publication skipped; no release/tag or installed deployment.

    The final handoff/conversation receipt is metadata-only with separate post-merge CI. All current branch tips are included; no stash. Tracked source is committed/pushed. The sole local untracked item is generated provision-mqtt-device.cpython-312.pyc, whose cleanup was host-blocked and user-deferred; no alternate removal or hiding was used.

    Product/hardware acceptance remains OPEN, including issues7/17/20/29/32/33 and donor gaps. There are4738 inventoried source paths,436 comparisons,4302 pending and310 known-gap files; fetching817 conversation records is not reviewing all817. ESP32-S3+AVR remain release targets and unfinished ESP8266 source is preserved.

    No production board/client was changed by this integration. In particular, ledcontroller's later stage-only request had no confirmed receipt and no Apply was sent; AP restoration/device access remains pending. Keycontroller's latest provisioning/deployment is unverified. Read fresh board/boot/job state before any recovery; do not replay uncertain writes or mistake merged source for running firmware. See docs/HANDOFF.md for the preserved continuation state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions