Skip to content

Commit fb97850

Browse files
committed
[docs] accept bounded recovery and declared app qualification
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 174ecfc commit fb97850

17 files changed

Lines changed: 200 additions & 137 deletions

‎CHANGELOG.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ incomplete automated evidence remains pending. The qualified v0.6.0 release
1111
remains a separate historical baseline built from its annotated tag.
1212

1313
The merged app source now targets `0.3.0+9`. Its local Android and iPad Preview
14-
installations are engineering candidates, with release qualification and channel
15-
delivery tracked separately. The recorded existing-channel baseline is Android
14+
installations support scoped engineering acceptance for bounded recovery and
15+
the declared app-only matrix. Device closeout is complete; final integration and actual channel
16+
delivery remain separate. The recorded existing-channel baseline is Android
1617
Play `0.2.0 (8)` and iPad TestFlight `0.2.0 (6)`; the earlier build-5 Transporter
1718
and build-8 submission handoffs remain historical artifact records.
1819

‎README.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,12 @@ This bounded feature covers text up to 1 MiB, including Python explicitly copied
104104
from Blocks. Blocks workspace graphs, projects/history and exported backups
105105
remain outside this increment. Uninstalling or clearing app data removes local
106106
copies. See the [candidate execution record](docs/developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md)
107-
for passing automated checks and candidate-specific device evidence. Local
108-
Android and iPad Preview installations are engineering candidates; their
109-
installation does not establish store availability or release qualification.
107+
for accepted automated and candidate-specific device evidence, including the
108+
declared five-profile × two-platform app matrix and test conditions. Local
109+
Android and iPad Preview installations remain separate from store delivery.
110110
The [release readiness record](docs/developments/2026-q4-reliable-workflow/c1-s2/06_Release_Readiness.md)
111-
tracks signed-artifact preparation, qualification and the channel handoff.
111+
tracks the engineering-qualified artifacts, completed device closeout and channel handoff;
112+
`0.3.0 (9)` is not yet established as a store-delivered update.
112113

113114
### Firmware
114115

‎docs/ROADMAP.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ v0.7.0 remains non-normative and requires separate maintainer approval.
3737
and launches are verified on connected tablets; fresh enrollment/reinstallation
3838
was not exercised. The pilot kit, recovery design and validation inventory
3939
are prepared; this does not complete the Sprint or board qualification.
40-
- Validate and qualify the implemented [bounded current-text recovery candidate](developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md)
41-
against the [contract](specifications/App/current-draft-recovery.md). Merged
42-
candidate `0.3.0+9` supplies atomic local checkpoints and offline recovery;
43-
full A-24 and Blocks graph persistence remain separate scope. The original
44-
45–72 hour estimate remains a forecast, not measured effort.
40+
- Deliver the engineering-accepted [bounded current-text recovery candidate](developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md).
41+
Candidate `0.3.0+9` passes its [contract](specifications/App/current-draft-recovery.md)
42+
and declared app-only matrix with exact test conditions recorded. Full A-24
43+
and Blocks graph persistence remain separate scope. The original 45–72 hour
44+
estimate remains a forecast, not measured effort.
4545
- Correct the [stale public TestFlight description](developments/2026-q4-reliable-workflow/c1-s1/05_TestFlight_Metadata_Correction.md)
4646
through the distribution owner; replacement copy is prepared, not published.
47-
- Complete [release qualification and channel delivery](developments/2026-q4-reliable-workflow/c1-s2/06_Release_Readiness.md) for merged app `0.3.0+9`,
47+
- Complete [final integration and channel delivery](developments/2026-q4-reliable-workflow/c1-s2/06_Release_Readiness.md) for qualified app `0.3.0+9`,
4848
retaining the recorded 0.2.0 channel baseline until the new channel is verified. The
4949
[Android publication review](testing/website/android-open-testing-2026-09-25.md)
5050
records live open-testing availability. The

‎docs/decisions/0010-working-loop-in-memory-document.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ and [C1-S1 review and sizing](../developments/2026-q4-reliable-workflow/c1-s1/03
6969
That 25 September inspection was design-only. The 31 October candidate now
7070
implements the bounded current-text successor; its
7171
[C1-S2 execution record](../developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md)
72-
separates source implementation from pending integrated/physical acceptance and
73-
release admission. The remaining A-24 project, settings, console, import and
72+
records scoped engineering acceptance after integrated/physical checks, with
73+
exact test conditions and completed device closeout; final integration and
74+
channel delivery remain separate. The remaining A-24 project, settings, console, import and
7475
Blocks obligations remain carried.

‎docs/decisions/0048-bounded-current-text-draft-recovery.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
**Status:** Accepted for the bounded implementation; candidate source implemented
77
2026-10-31 under the user's next-release request. The contract was specified
88
2026-09-25 during C1-S1. PR #40 merged the source and integrated CI passes.
9-
Required physical acceptance and release admission remain pending; no named
10-
human sign-off is claimed.
9+
Scoped recovery acceptance and app-only qualification are recorded for frozen
10+
runtime `bef67bd` after required automated and physical checks. Device closeout
11+
is complete; final branch integration and channel delivery remain separate; no
12+
named human sign-off is claimed.
1113

1214
## Context
1315

‎docs/developments/2026-q4-reliable-workflow/01_Overview_and_Scrum_Framework.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
|---|---|
1010
| Package | PyBLE 2026 Q4 reliable workflow, Cycle 1 (`C1`) |
1111
| Prepared | 25 September 2026; Asia/Bangkok |
12-
| Strategy | [Implementation Plan, revision 1.7](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md) |
12+
| Strategy | [Implementation Plan, revision 1.8](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md) |
1313
| Repository baseline | `23ed764b0ef88dce9720c66fbd1c0655268860cf` |
1414
| Proposed cycle | 28 September–20 December 2026; six two-week Sprints |
15-
| Status | C1-S1 device retry on 25 September: six tasks Done, two Prepared and four Awaiting evidence; both current channel installations verified, pilot work unfinished. Later Sprints require replanning against new sizing; no staffed-team ceremony is inferred |
15+
| Status | C1-S1: six Done, two Prepared and four Awaiting evidence. The 31 October continuation accepts M-02 and app-only M-04; S2 has ten Done tasks and T11 awaiting participants. Channel delivery and human capacity remain unresolved; no staffed-team ceremony is inferred |
1616
| Primary audience | Tablet-owning makers, provisionally; confirm one reachable cohort before observation |
1717
| Authoritative contracts | [Contributor rules](../../../AGENTS.md), [App specification](../../specifications/App/specs.md), [App TDD](../../specifications/App/TDD.md), [PBLE/1](../../specifications/protocol.md), and applicable firmware/release specifications |
1818

1919
This package derives execution views from the strategy. It does not replace normative specifications, expand hardware claims, create GitHub issues, or authorize store/website publication. The strategy and original package were recorded together in planning baseline `d039db0`. The [C1-S1 execution record](c1-s1/00_Execution_Record.md) owns actual results and blockers.
2020

21-
**31 October continuation update:** the `0.3.0+9` recovery baseline merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40). Physical qualification exposed three keyboard defects; their repairs at `bef67bd` pass 984 ordinary tests and all 36 PR #41 checks. iPad recovery, final keyboard regressions and all five iPad app-only board rows pass with declared source/firmware scope. Earlier Android recovery and board rows pass, but a later final-candidate Blocks startup observation remains under investigation. Signed packages and a channel packet are prepared; admission and actual store delivery remain separate. The [C1-S2 record](c1-s2/00_Execution_Record.md) binds the evidence. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the baseline; the [continuation plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast) records unresolved capacity inputs.
21+
**31 October acceptance update:** scoped current-text recovery (PYB-006.2 / M-02) and the app-only M-04 candidate pass engineering review at `bef67bd`: 984 ordinary tests, 36 frozen-runtime CI checks, both-platform recovery/keyboard evidence and all ten declared app/profile rows. The [C1-S2 record](c1-s2/00_Execution_Record.md) preserves exact artifacts, firmware baselines, earlier-row impact assessments and the temporary Android qualifier battery-policy condition. Signed packages and the release packet are prepared; original device policy and normal board advertising are restored, and owned fixtures are cleaned. Final branch integration and actual M-05 store delivery remain separate. S1 remains six Done / two Prepared / four Awaiting evidence; S2 has ten engineering tasks Done and participant follow-up unfinished. Original dates/hours remain the baseline; the [continuation plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast) records the next work and unresolved human capacity.
2222

2323
## Navigation and ownership of information
2424

@@ -31,11 +31,11 @@ This package derives execution views from the strategy. It does not replace norm
3131
| [05 — Product backlog and stories](05_Product_Backlog_and_Stories.md) | Ordered work, parent/child identities, acceptance criteria, and source traceability | Refinement or changed user evidence |
3232
| [06 — Sprint backlogs](06_Sprint_Backlogs.md) | Task allowances, dependencies, C1-S1 execution status and later forecasts requiring replanning | Developers select/adapt work during a Sprint |
3333
| [C1-S1 — Execution and evidence](c1-s1/00_Execution_Record.md) | Actual channel checks, pilot kit, recovery design/sizing and validation inventory | New evidence, source review or a resolved blocker |
34-
| [C1-S2 — Implementation and evidence](c1-s2/00_Execution_Record.md) | Bounded recovery candidate, actual test states, remaining physical/release work and scoped operator recipe | Source integration, actual platform runs or admission decision |
34+
| [C1-S2 — Implementation and evidence](c1-s2/00_Execution_Record.md) | Accepted bounded recovery and app-only qualification, retained evidence/limits, release continuation and scoped operator recipe | Source integration, actual platform runs or admission decision |
3535

3636
```mermaid
3737
flowchart LR
38-
Strategy["Strategy revision 1.7"] --> Goal["One Product Goal"]
38+
Strategy["Strategy revision 1.8"] --> Goal["One Product Goal"]
3939
Goal --> Roadmap["Outcome roadmap and milestones"]
4040
Roadmap --> Product["Ordered Product Backlog"]
4141
Product --> Planning["Sprint Planning"]
@@ -64,7 +64,7 @@ flowchart LR
6464
| App source is `0.2.0+8`; physical retry verifies Play `0.2.0 (8)` and TestFlight `0.2.0 (6)` | Android payloads map to the historical build-8 bundle; iPad source mapping remains unknown. Neither channel check proves BLE or older-OS compatibility |
6565
| Firmware v0.6.1 is published on owner confirmation across five exact profiles | Pending automated results stay pending; no automatic PyBLE Ready badge |
6666
| Issue #24 is closed/superseded | Do not resurrect its old release umbrella as a dependency |
67-
| S1 baseline draft was volatile; [ADR-0048](../../decisions/0048-bounded-current-text-draft-recovery.md) now has a bounded candidate implementation | Complete applicable recovery acceptance; full project persistence and Blocks graph recovery remain carried |
67+
| S1 baseline draft was volatile; [ADR-0048](../../decisions/0048-bounded-current-text-draft-recovery.md) now has an accepted bounded recovery increment | M-02 acceptance is recorded on 31 October; full project persistence and Blocks graph recovery remain carried |
6868
| Lifecycle protections, tutorials, imports, and test tools already exist | Reuse them; refine only observed gaps and the documented persistence gap |
6969

7070
## Applying Scrum to PyBLE
@@ -140,7 +140,7 @@ When facts or priority change, update the canonical file above and its dependent
140140

141141
| Source | Use and precedence |
142142
|---|---|
143-
| [Strategy revision 1.7](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md) | Scope, targets, six-Sprint capacity, three outcomes, Ready program and conditional horizons |
143+
| [Strategy revision 1.8](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md) | Scope, targets, six-Sprint capacity, three outcomes, Ready program and conditional horizons |
144144
| [Public roadmap](../../ROADMAP.md), [README](../../../README.md) | Current capability and distribution baseline |
145145
| [App specification](../../specifications/App/specs.md), [App TDD](../../specifications/App/TDD.md), [ADR-0010](../../decisions/0010-working-loop-in-memory-document.md) | Persistence contract and recorded implementation deviation; consult frozen working-loop scope |
146146
| [Firmware roadmap](../../planning/firmware-v0.6.1-v0.7.0-roadmap.md), [PBLE/1](../../specifications/protocol.md) | v0.7 proposals versus frozen wire behavior; old v0.6.1 publication/#24 wording is historical |

‎docs/developments/2026-q4-reliable-workflow/02_Product_Roadmap.md‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
| Control | Value |
77
|---|---|
8-
| Status | C1-S1 has six tasks Done, two Prepared awaiting pilot setup and four Awaiting evidence; existing channel installations verified. Future direction remains conditional and forecasts need revision after sizing |
8+
| Status | C1-S1 remains partial; bounded recovery and app-only qualification pass 31 October engineering review. Next release work is final integration and M-05 delivery; pilot/capacity inputs remain outstanding |
99
| Planning date | 25 September 2026; dates use Asia/Bangkok |
10-
| Source | [Implementation strategy revision 1.7](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md), particularly §§1, 6–9, 12, 14, and 19 |
10+
| Source | [Implementation strategy revision 1.8](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md), particularly §§1, 6–9, 12, 14, and 19 |
1111
| Inspected baseline | `main` at `23ed764b0ef88dce9720c66fbd1c0655268860cf` |
1212
| First cycle | C1: 28 September–20 December 2026; later horizons conditional through September 2028 |
1313
| Planning authority | Product Owner orders the Product Backlog; Developers forecast feasible work during Sprint Planning; names and capacity remain unassigned |
1414
| Related documents | [Framework](01_Overview_and_Scrum_Framework.md), [milestones](03_Milestones.md), [Sprint Plan](04_Sprint_Plan.md), [stories](05_Product_Backlog_and_Stories.md), [Sprint Backlogs](06_Sprint_Backlogs.md) |
1515

16-
**31 October continuation update:** the `0.3.0+9` recovery baseline merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40). Physical qualification exposed three keyboard defects; their repairs at `bef67bd` pass 984 ordinary tests and all 36 PR #41 checks. iPad recovery, final keyboard regressions and all five iPad app-only board rows pass with declared source/firmware scope. Earlier Android recovery and board rows pass, but a later final-candidate Blocks startup observation remains under investigation. Signed packages and a channel packet are prepared; admission and actual store delivery remain separate. The [C1-S2 record](c1-s2/00_Execution_Record.md) binds the evidence. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the baseline; the [continuation plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast) records unresolved capacity inputs.
16+
**31 October acceptance update:** scoped current-text recovery (PYB-006.2 / M-02) and the app-only M-04 candidate pass engineering review at `bef67bd`: 984 ordinary tests, 36 frozen-runtime CI checks, both-platform recovery/keyboard evidence and all ten declared app/profile rows. The [C1-S2 record](c1-s2/00_Execution_Record.md) preserves exact artifacts, firmware baselines, earlier-row impact assessments and the temporary Android qualifier battery-policy condition. Signed packages and the release packet are prepared; original device policy and normal board advertising are restored, and owned fixtures are cleaned. Final branch integration and actual M-05 store delivery remain separate. S1 remains six Done / two Prepared / four Awaiting evidence; S2 has ten engineering tasks Done and participant follow-up unfinished. Original dates/hours remain the baseline; the [continuation plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast) records the next work and unresolved human capacity.
1717

1818
## Product Goal and decision principle
1919

@@ -49,7 +49,7 @@ team capacity or a completed formal Sprint.
4949
| Existing workflow | PBLE/1 editing, files, run/stop, console, Blocks, tutorials, and reviewed import already exist | Reuse implementation and tests; improve measured failures rather than rebuild the workflow |
5050
| Firmware v0.6.1 | Owner-confirmed publication for five exact profiles; incomplete automated evidence remains visible | New qualification and compatibility claims require their own applicable evidence |
5151
| Historical issue #24 | Closed as superseded; incomplete checklist was not declared passed | Do not recreate closure as a new dependency or treat historical closure as qualification |
52-
| Durable drafts | Bounded current-text recovery now has candidate source under ADR-0048; required acceptance remains unfinished | Complete integrated/physical evidence for PYB-006.2; retain broader A-24/Blocks scope |
52+
| Durable drafts | Bounded current-text recovery under ADR-0048 passes scoped engineering acceptance on 31 October | Deliver the qualified candidate through the selected channels; retain broader A-24/Blocks scope |
5353
| Adoption and Ready | No measured cohort results or awarded PyBLE Ready badge established by the strategy | Treat outcome targets and badge eligibility as proposals requiring evidence |
5454

5555
The [Android publication review](../../testing/website/android-open-testing-2026-09-25.md)
@@ -61,7 +61,8 @@ That proposal still informs conditional Reliable Projects scope and compatibilit
6161

6262
The windows are sequencing forecasts measured from the proposed cycle start.
6363
Overlapping windows permit options; they do not create simultaneous commitments
64-
for one maintainer. All rows in this table have status **Proposed**.
64+
for one maintainer. The horizons remain proposals; the dated acceptance above records completed
65+
bounded work inside H1 without declaring that whole horizon complete.
6566

6667
| Horizon / indicative window | Outcome and user value | Planning items / milestone | Admission and dependency | Evidence for continuation |
6768
|---|---|---|---|---|

0 commit comments

Comments
 (0)