Repository navigation
PakarController complete production acceptance and donor parity #2
Description
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
cb1f18f16c62e369e52120ec0986bd30d1b5d38e71204216c47aded721a6de0finstalled by actual ROM-MAC/selection-guarded USB application-only recovery. VALID app0/0x10000, new bootff6da73b47d6fd790fc1eb36c491d6ef, 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
- Bind this checklist to the GitHub master issue/PR and fix exact-head CI.
- Audit Puzzles/audio/busy wiring and full donor inventories; import/test omissions.
- Complete interactive TUI, richer Web/native menus and retained PU850 services.
- Audit and preserve Flutter sources; integrate mobile CI and builds.
- Restore ASUS reachability for live Wi-Fi, both firmware deployments, all
physical tests, cloud round-trip and multi-client verification. - 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
Harden integrated firmware and preserve Android preview with acceptan…
atomicdeploy commentedon Oct 10, 2026
PakarController 0.2.4 source checkpoint
Refs #2.
This is not the completed production acceptance or a hardware deployment.
Implemented and locally verified
before output enable. Polling builds never touch that GPIO. AVR input
INPUT_PULLUP remains enabled. Both macro variants build.
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.
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.
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.
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.
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.
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.
atomicdeploy commentedon Oct 10, 2026
PakarController 0.2.5 source checkpoint
Refs #2.
This is not the completed production acceptance or a hardware deployment.
Implemented and locally verified
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.
it no longer duplicates mutations. Explicit transport and stale serial
observations are respected. Lost responses do not cause cross-route replay.
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.
before output enable. Polling builds never touch that GPIO. AVR input
INPUT_PULLUP remains enabled. Both macro variants build.
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.
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.
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.
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.
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.
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.
atomicdeploy commentedon Oct 10, 2026
PakarController 0.2.5 source checkpoint
Refs #2.
This is not the completed production acceptance or a hardware deployment.
Implemented and locally verified
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.
it no longer duplicates mutations. Explicit transport and stale serial
observations are respected. Lost responses do not cause cross-route replay.
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.
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.
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.
update-success cue. Explicit successful OTA/ISP paths retain audible cues.
The source boot-routing regression passes; audible acceptance remains open.
geometry regression covers multiple cell sizes, followed by actual capture.
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.
before output enable. Polling builds never touch that GPIO. AVR input
INPUT_PULLUP remains enabled. Both macro variants build.
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.
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.
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.
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.
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 73508and version 0.2.5. That client preference is not a deployed board rename.
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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
Native device settings checkpoint pushed: 1cf3da0. Implementation/remaining acceptance checkboxes are in issue #4.
http://ledboard.local, PID 82564. Exe SHA-256:433d3340c32d50f085c0a212bed03479c71d37c4014a2fdcca736beab9113d00.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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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.localprofile. 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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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 .
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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.
atomicdeploy commentedon Oct 10, 2026
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.
138 remaining items
atomicdeploy commentedon Oct 25, 2026
Canonical Web correction address-controls checkpoint:
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.
atomicdeploy commentedon Oct 25, 2026
Canonical Web pixel-tools navigation bug fixed (source/DOM checkpoint):
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.
atomicdeploy commentedon Oct 25, 2026
Canonical Web correction cursor-import checkpoint:
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.
atomicdeploy commentedon Oct 25, 2026
Canonical Web workspace routing checkpoint:
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.
atomicdeploy commentedon Oct 25, 2026
Shared canonical Web dialog checkpoint — local candidate
web_ui/src/components/EffectGroupDialog.tsxthrough 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.02cd620b98e81e6fce4ace17362a5d9feaf70f4fe511a135bf2c218143d0ef21, 470074 raw / 132630 gzip bytes. Original 221 control IDs and 292 named functions retained. Local preview reads the refreshed canonical assets.Existing authoritative donor/parity ledgers and receipts updated; production acceptance stays open.
atomicdeploy commentedon Oct 25, 2026
Canonical Web pixel-group discard guard — local checkpoint
e349b48a13230944837ca36ba5c9ffde8423a937d06a24dc1082e4e9363f5933, 471348 raw / 132686 gzip bytes; 221 original IDs and 292 named functions retained. Canonical preview assets refreshed.Production and complete donor parity remain open.
atomicdeploy commentedon Oct 25, 2026
Fixed reproduced cross-session pixel-group draft mutation
[5,7]became[7]).8b5fa957edfced5e5783c9b2b412cf15d1c177f9a3d7a9c4253bebe0027d223c, 471643 raw / 132769 gzip bytes.atomicdeploy commentedon Oct 25, 2026
Fixed pixel-group incomplete-input loss — local Web candidate
5when adding another group redrew the editor.aria-invalid; Save is blocked by model validation as well as button state. A retained Save callback cannot bypass validation.965afecb7ce963a324a95380032e49f8cca316cdbf5aecc67e1f72bae4378976(472096 raw / 132888 gzip bytes).atomicdeploy commentedon Oct 25, 2026
Correction editor: retained drafts and owned row actions
1after Add rule. Pixel/offset text now persists with its rule through redraw, reorder and leaving/returning to the original peer.88646a90247cf18d3d4ef508bf0beaa4d15d4745c36f926ecb49001d4b7e0ce1, 473054 raw / 133137 gzip bytes. Actual complete Pealayer NumericValueControl reread; existing ledger/receipt refreshed selectively.atomicdeploy commentedon Oct 25, 2026
Added explicit local Draft/Applied wire-map comparison
pixelCorrectionSourcesport after reading the complete current editor andmappingPreviewmethod. Applied map retains board-provided sources; Draft map projects local ordered/enabled rules, never masquerading as output observation.58013d068a6e257ceedf180b4383b92608db77bbbcfc1067cd574465dcbcf707, 475196 raw / 133647 gzip bytes. New copy includes Persian translations; same ledger updated.425f4b6d94957193cc0dfacbdcd664e2c440a8aca66aa6cb45a30da8370b1830.atomicdeploy commentedon Oct 25, 2026
Web parity: board-owned advanced pixel diagnostics
e2cd8c995230842e89017138ad38145a522cb5363185c9b4a436aabb726fb81a, 483439 raw / 135766 gzip bytes. Shared Persian copy added and exact generated-dictionary bindings repaired without weakening the ledger gate.atomicdeploy commentedon Oct 25, 2026
Canonical Web checkpoint: durable diagnostic drafts
src/ui/workspace_profiles.rsstable-ID ownership and actual FlutterPixelDiagnosticWorkspaceconstructor/snapshot slice. Existing board/application workspace writer remains the only persistence owner.85662691a9bd6fb4376ea584cad4a1232be0597395a5784c34790588b0e3c59f, 486250 raw /136805 gzip bytes. Subsequent--checkbuilds require no writes. Existing 221 controls and 292 named functions retained.425f4b6d94957193cc0dfacbdcd664e2c440a8aca66aa6cb45a30da8370b1830is not evidence of expanded controls or successful browser input.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.atomicdeploy commentedon Oct 26, 2026
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.
64ff59a7b22d89162c426e99ee8a6f0fd9a947c58143a8d76d462b5ebca2f601,499133 raw/140362 gzip bytes;221 original controls/292 named functions retained. Only affected Web assets built, warm assets reused.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.atomicdeploy commentedon Oct 27, 2026
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.
atomicdeploy commentedon Oct 29, 2026
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.