You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 709556e
Browse filesBrowse the repository at this point in the historyBrowse files
| Overall state | Candidate source implemented; 968 ordinary Flutter tests pass, Android engineering recovery checks pass, and required physical acceptance remains partial. PYB-006.2 and M-02 are not Done |
14
+
| Overall state | Candidate source implemented; 972 ordinary Flutter tests pass, Android engineering recovery checks pass, and required physical acceptance remains partial. PYB-006.2 and M-02 are not Done |
15
15
| S1 state | Unchanged: six Done, two Prepared, four Awaiting evidence; M-01/SG0 and pilot work remain unfinished |
16
16
| Capacity/calendar | Original S2 allowance 24h and 12–25 October dates remain historical forecasts. The 45–72h estimate / 60h S2–S4 option is not measured effort or confirmed human capacity |
17
17
| Method | Separate storage, coordinator and UI Git worktrees; root integrates board/session guards, regressions, release records and qualification attempts |
@@ -25,7 +25,7 @@ Existing channel installations are separate from this unqualified candidate.
| Drift repository |`projects` / `project_files` subset and one SettingsStore; atomic content/metadata/generation; exact UTF-8 and SHA-256; 1 MiB admission bound | File-backed tests and schema fixtures; actual device storage still needs recorded candidate runs|
28
+
| Drift repository |`projects` / `project_files` subset and one SettingsStore; atomic content/metadata/generation; exact UTF-8 and SHA-256; 1 MiB admission bound | File-backed tests/schema fixtures plus Android/iPad native storage harnesses; full interaction/board acceptance remains pending|
29
29
| Production storage |`pyble.sqlite` below the platform app-private Application Support directory; owned background database connection with WAL and FULL synchronization | No cache/scratch/preferences substitute; preserve database/WAL/journal on failure |
30
30
| Recovery coordinator | One active checkpoint and one coalesced pending revision; 500ms idle and maximum 2s active scheduling; manual/lifecycle flush; durable acknowledgement separate from board dirty | Controller timer/epoch/failure tests; callbacks are not a promise that every last keystroke survives termination |
31
31
| Startup and local panel | Resolve storage before Connect mounts; explicit preview/Restore/Discard; ten-second bounded wait; Retry / clearly volatile continuation | ARB-backed widget/semantics checks; disconnected preview/copy is a narrow shell exception |
@@ -47,9 +47,9 @@ source progress; it is not a Done Increment or release admission.
47
47
| C1-S2-T04 / PYB-006.2 | Implemented — durable storage and schema | Final integration and physical storage evidence |
48
48
| C1-S2-T05 / PYB-006.2 | Implemented — startup choices/coordinator/UI | Final integration and physical interaction/restart evidence |
| C1-S2-T07 / PYB-006.2 | Implemented and checked — full analysis, 968 ordinary tests, formatting and source gates pass | Pinned golden CI and final release evidence remain tracked separately |
50
+
| C1-S2-T07 / PYB-006.2 | Implemented and checked — full analysis, 972 ordinary tests, formatting and source gates pass | Pinned golden CI and final release evidence remain tracked separately |
51
51
| C1-S2-T08 / PYB-008.1 | Awaiting physical Android candidate evidence | Lenovo connected and isolated engineering storage/relaunch/offline UI checks pass; remaining board/interaction matrix recorded in [platform report](02_Platform_Qualification.md)|
52
-
| C1-S2-T09 / PYB-008.1 | Awaiting physical iPad candidate evidence | iPad connected over USB; signed and unsigned builds succeed, but launch still requires Developer Mode to be enabled|
52
+
| C1-S2-T09 / PYB-008.1 | Awaiting physical iPad candidate evidence | iPad USB signed profile seed → kill → verify checks pass; full physical UI/board interaction matrix remains pending|
53
53
| C1-S2-T10 / PYB-006.2 | In progress — integration/evidence review | Record final checks, immutable candidates, physical results and carried limitations |
54
54
| C1-S2-T11 / PYB-011.2 | Awaiting participant evidence | No consenting activation dates or mature follow-up records supplied |
55
55
@@ -62,8 +62,8 @@ records the final complete run and exact candidate revision before acceptance.
62
62
| Scenario | Implemented evidence | Current acceptance state |
63
63
|---|---|---|
64
64
| DR-T01 | Real repository validation/round-trip tests: exact Unicode, filenames, content bound and invalid metadata | Automated integrated suite passing |
65
-
| DR-T02 | File-backed close/reopen retains the committed slot and generation | Automated suite and Lenovo separate-process harness passing; iPad pending |
| DR-T04 | Real storage failure injection plus controller failure state retains previous copy and live edits | Automated integrated suite passing |
68
68
| DR-T05 | Bad hash/metadata, corrupt/truncated database and unsupported version fixtures; bounded startup error UI | Automated integrated suite passing |
69
69
| DR-T06 | Fresh v1/reopen, exported first schema and unsupported-version refusal; no fictional released v0 | Component tests passing; future schema migrations remain gated on new fixtures |
@@ -74,7 +74,7 @@ records the final complete run and exact candidate revision before acceptance.
74
74
| DR-T11 | Stable-facade board swap, delayed GET, stale completion and PUT-to-Run attachment refusal | Recording-connection tests passing; final integrated regression pending |
75
75
| DR-T12 | Explicit generated text handoff with editor-epoch/revision guards; existing workspace/sidecar behavior retained | Affected automated regression required in final suite; representative device checks pending |
76
76
| DR-T13 | Local/board status separation, ARB error/status copy, disconnected preview, keyboard and 2× text | Automated UI/localization pass; physical Lenovo 2× preview observed; local golden baseline mismatch reproduced unchanged, pinned CI pending |
77
-
| DR-T14 | Exact recorded Android/iPad candidate, offline restore and explicit current target consent | Partial Lenovo engineering observations; signed iPad candidate not yet launched; physical board consent still pending |
77
+
| DR-T14 | Exact recorded Android/iPad candidate, offline restore and explicit current target consent | Partial Lenovo engineering observations; signed iPad profile seed/verify pass; physical board consent still pending |
78
78
79
79
## Verification and remaining admission
80
80
@@ -85,9 +85,9 @@ records the final complete run and exact candidate revision before acceptance.
85
85
| UI component suite | 57 passing in the latest component report; included in the final ordinary suite |
86
86
| Integrated storage/coordinator/guard subset | 51 passing in an integration subset; overlaps component suites |
87
87
| Static analysis | Full app analysis reported no issues at the latest integration checkpoint |
88
-
| Full app regression and repository gates | At app source `4479ff6`: 968 ordinary Flutter tests pass; analysis clean; 204 Dart files formatted; no-leak/SPDX/import/locale/DCO pass; 42 publication tests and Markdown links pass after documentation updates |
88
+
| Full app regression and repository gates | At app source `90311f3`: 972 ordinary Flutter tests pass; analysis clean; 204 Dart files formatted; no-leak/SPDX/import/locale/DCO pass; 42 publication tests and Markdown links pass after documentation updates |
89
89
| Android additional harness | Lenovo Android 12 separate-process seed/verify and production-entry offline UI checks pass in an isolated app; [scope/artifacts](02_Platform_Qualification.md)|
90
-
| iPad additional harness |USB discovery and signed build succeed; Flutter launch reports Developer Mode disabled; owner setup requested|
90
+
| iPad additional harness |Signed profile build/install/launch succeed. Seed and verify assertion receipts pass across a killed process; closed database hash unchanged. Flutter debug path remains unavailable|
91
91
| Candidate store state | No Google Play/TestFlight submission, approval, new public availability or installed-store verification established by this work |
92
92
| Firmware and Ready | No new firmware publication or complete five-profile qualification; no second-operator reproduction or PyBLE Ready award |
93
93
@@ -117,3 +117,11 @@ this result is not a golden pass. The workflow pins macOS 15, whose result is
117
117
tracked on [draft PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40).
118
118
The source and documentation are reviewable on `feature/current-draft-recovery`.
119
119
No merge or store publication is implied by that draft.
120
+
121
+
The final boundedness audit added SQL byte/count preflights before metadata or
122
+
row materialization: corrupt metadata is capped before JSON reaches the UI
123
+
isolate. The final ordinary suite is 972 passing tests. [Platform results](02_Platform_Qualification.md)
124
+
include successful iPad profile assertion receipts and a killed-process boundary.
125
+
Five powered boards were reported by the owner; the Lenovo fresh scan currently
126
+
shows four advertisements, with historical classic ESP32 label `8C9E` absent.
127
+
That discovery observation is under investigation and is not a four-result cap.
| Scope | Local storage, explicit offline recovery and platform builds; partial evidence toward DR-T02/03/07/13/14 |
11
11
| Acceptance | Engineering observations only; full physical board consent, interruption/interaction matrix and release qualification remain pending |
12
12
| Raw evidence | Ignored `local/recovery-implementation/`: commands/results, source manifests, screenshots/UI dumps, retained checkpoint and APK; raw captures are not committed |
@@ -74,9 +74,46 @@ A signed build is build evidence. It does not establish successful installation,
74
74
execution, offline restoration, TestFlight availability or physical BLE behavior.
75
75
Any further install/launch result must be recorded separately.
76
76
77
+
## Final bounded candidates and iPad native execution
78
+
79
+
| Evidence | Result |
80
+
|---|---|
81
+
| Final ordinary suite | 972 tests pass; full analysis clean after the metadata byte/count preflight fix |
82
+
| Final Android production-entry APK |`artifacts/pyble-0.3.0-9-recovery-final.apk`; SHA-256 `957982f5acec969f8003d04b2d6444eecbba9af26b7392d760badb5be5d6bd0e`; installed on Lenovo, version `0.3.0 (9)`|
83
+
| Final runtime source | Copied `lib/` is byte-identical to `90311f3`; only copied native bundle/application identities differ. Final source manifests retained |
84
+
| iPad route | Signed **profile** mode launches through `devicectl` using current device settings; this bypasses the unavailable Flutter debug/JIT route |
85
+
| iPad seed | All seed assertions and repository close completed; bounded test receipt says `phase=seed`, `passed=true`, `platform=ios`, completion `2026-10-31T04:06:31.192251Z`|
86
+
| iPad process boundary | Seed process 5826 killed with `devicectl device process terminate --kill`; subsequent process enumeration confirms it absent |
87
+
| iPad verify | Final bounded candidate installed into the same isolated container and launched separately; all exact-text, dirty/unbound, explicit Restore and declined-board-write assertions completed; receipt `passed=true` at `2026-10-31T04:08:45.983001Z`|
0 commit comments