Skip to content

Commit 3bafba6

Browse files
committed
[docs] reconcile merged recovery candidate and continuation plan
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 6f5b3ea commit 3bafba6

19 files changed

Lines changed: 159 additions & 86 deletions

‎CHANGELOG.md‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ or firmware release. Firmware v0.6.1 is published on the owner's confirmation;
1010
incomplete automated evidence remains pending. The qualified v0.6.0 release
1111
remains a separate historical baseline built from its annotated tag.
1212

13-
The current compatible app feature set now targets `0.2.0`; build `5` was
14-
handed off through Transporter for TestFlight. This candidate identity improves
15-
test and evidence traceability but does not designate a qualified store release
16-
or claim App Store Connect processing, beta-review approval, or availability.
17-
The next prepared Android open-testing candidate is `0.2.0 (8)`; its bundle
18-
and submission packet do not claim Play submission, approval, or rollout.
13+
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
16+
Play `0.2.0 (8)` and iPad TestFlight `0.2.0 (6)`; the earlier build-5 Transporter
17+
and build-8 submission handoffs remain historical artifact records.
1918

2019
### App source
2120

22-
- Prepared app source candidate `0.3.0+9` with bounded on-device current-text
21+
- Merged app source candidate `0.3.0+9` with bounded on-device current-text
2322
recovery using Drift. Exact text and metadata commit atomically; startup
2423
offers offline preview, Restore and confirmed Discard, with separate local
2524
checkpoint status and an explicit Save recovery copy action. Storage errors

‎README.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fetches and validates the complete batch, shows the exact destination paths,
7575
and asks separately before overwriting existing files. Import never creates a
7676
remote folder hierarchy, opens an editor document, or runs downloaded code.
7777

78-
The next App source candidate is `0.3.0+9`; App and firmware versions are
78+
The merged App source candidate is `0.3.0+9`; App and firmware versions are
7979
independent. The published Android version is `0.2.0`, available through
8080
[Google Play open testing](https://play.google.com/store/apps/details?id=dev.pyble.pyble).
8181
iPad testing continues through TestFlight. The
@@ -93,7 +93,7 @@ same Flutter source and app test gates. The iOS/iPadOS project minimum is 15.
9393

9494
### Next app candidate: local draft recovery
9595

96-
The `0.3.0+9` source candidate adds one on-device current-text recovery copy.
96+
The merged `0.3.0+9` candidate adds one on-device current-text recovery copy.
9797
After restart, preview and explicitly Restore or Discard the last committed
9898
copy before connecting. “Saved locally” means the matching transaction finished;
9999
pending edits may not survive immediate termination. The separate **Save
@@ -104,8 +104,9 @@ 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 automated and device evidence; source implementation does not establish
108-
store availability or release qualification.
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.
109110

110111
### Firmware
111112

‎docs/ROADMAP.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,14 @@ v0.7.0 remains non-normative and requires separate maintainer approval.
3838
was not exercised. The pilot kit, recovery design and validation inventory
3939
are prepared; this does not complete the Sprint or board qualification.
4040
- 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). Source
41+
against the [contract](specifications/App/current-draft-recovery.md). Merged
4242
candidate `0.3.0+9` supplies atomic local checkpoints and offline recovery;
4343
full A-24 and Blocks graph persistence remain separate scope. The original
4444
45–72 hour 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-
- Prepare the next app `0.3.0+9` candidate while retaining the published 0.2.0 channel baseline. The
47+
- Complete release qualification and channel delivery for merged app `0.3.0+9`,
48+
retaining the recorded 0.2.0 channel baseline until the new channel is verified. The
4849
[Android publication review](testing/website/android-open-testing-2026-09-25.md)
4950
records live open-testing availability. The
5051
[prepared build-8 handoff](testing/google-play/0.2.0-build-8.md) remains a

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55

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
8-
2026-09-25 during C1-S1. Final integrated checks, required physical evidence and
9-
release admission remain pending; no named human sign-off is claimed.
8+
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.
1011

1112
## Context
1213

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
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 implementation update:** bounded recovery work is underway for candidate `0.3.0+9`, following the user’s next-release request. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) records source, automated and physical states separately. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours below remain the planning baseline; no completed Sprint, adopted 60-hour capacity forecast or release admission is inferred.
21+
**31 October continuation update:** bounded recovery candidate `0.3.0+9` is merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40) at `6f5b3ea`; the integrated suite and post-merge CI pass. Both tablets have local candidate installations and native storage restart evidence. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) tracks the remaining physical acceptance separately from release qualification. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the planning baseline; the current continuation order and unresolved capacity inputs are recorded in the [Sprint plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast).
2222

2323
## Navigation and ownership of information
2424

@@ -35,7 +35,7 @@ This package derives execution views from the strategy. It does not replace norm
3535

3636
```mermaid
3737
flowchart LR
38-
Strategy["Strategy revision 1.4"] --> Goal["One Product Goal"]
38+
Strategy["Strategy revision 1.6"] --> Goal["One Product Goal"]
3939
Goal --> Roadmap["Outcome roadmap and milestones"]
4040
Roadmap --> Product["Ordered Product Backlog"]
4141
Product --> Planning["Sprint Planning"]
@@ -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.4](../../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.6](../../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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
|---|---|
88
| 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 |
99
| Planning date | 25 September 2026; dates use Asia/Bangkok |
10-
| Source | [Implementation strategy revision 1.4](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md), particularly §§1, 6–9, 12, 14, and 19 |
10+
| Source | [Implementation strategy revision 1.6](../../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 implementation update:** bounded recovery work is underway for candidate `0.3.0+9`, following the user’s next-release request. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) records source, automated and physical states separately. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours below remain the planning baseline; no completed Sprint, adopted 60-hour capacity forecast or release admission is inferred.
16+
**31 October continuation update:** bounded recovery candidate `0.3.0+9` is merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40) at `6f5b3ea`; the integrated suite and post-merge CI pass. Both tablets have local candidate installations and native storage restart evidence. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) tracks the remaining physical acceptance separately from release qualification. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the planning baseline; the current continuation order and unresolved capacity inputs are recorded in the [Sprint plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast).
1717

1818
## Product Goal and decision principle
1919

‎docs/developments/2026-q4-reliable-workflow/03_Milestones.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
|---|---|
88
| Status | M-01/SG0 remains Blocked on 25 September by pilot ownership/cohort/setup and capacity decisions; existing channel installations verified on retry. M-02 is in progress in the 31 October candidate with acceptance pending; other milestones remain Proposed and forecast windows need replanning |
99
| Planning date | 25 September 2026; dates use Asia/Bangkok |
10-
| Source | [Implementation strategy revision 1.4](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md), especially §§4, 8–10, 14, and 19 |
10+
| Source | [Implementation strategy revision 1.6](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md), especially §§4, 8–10, 14, and 19 |
1111
| Inspected baseline | `main` at `23ed764b0ef88dce9720c66fbd1c0655268860cf` |
1212
| Related documents | [Framework](01_Overview_and_Scrum_Framework.md), [roadmap](02_Product_Roadmap.md), [Sprint Plan](04_Sprint_Plan.md), [stories](05_Product_Backlog_and_Stories.md), [Sprint Backlogs](06_Sprint_Backlogs.md) |
1313
| Meaning | Milestones describe inspectable outcomes and decision evidence; they are not additional Scrum events or promised releases |
1414

15-
**31 October implementation update:** bounded recovery work is underway for candidate `0.3.0+9`, following the user’s next-release request. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) records source, automated and physical states separately. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours below remain the planning baseline; no completed Sprint, adopted 60-hour capacity forecast or release admission is inferred.
15+
**31 October continuation update:** bounded recovery candidate `0.3.0+9` is merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40) at `6f5b3ea`; the integrated suite and post-merge CI pass. Both tablets have local candidate installations and native storage restart evidence. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) tracks the remaining physical acceptance separately from release qualification. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the planning baseline; the current continuation order and unresolved capacity inputs are recorded in the [Sprint plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast).
1616

1717
## Assessment and evidence states
1818

‎docs/developments/2026-q4-reliable-workflow/04_Sprint_Plan.md‎

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
| Field | Value |
77
|---|---|
8-
| Status | C1-S1 remains partial; bounded S2 candidate implementation selected 31 October with acceptance pending. Original S2–S6 dates/hours remain baseline forecasts requiring capacity reconciliation |
8+
| Status | C1-S1 remains partial; bounded S2 candidate merged 31 October with physical acceptance pending. Original S2–S6 dates/hours remain baseline forecasts requiring capacity reconciliation |
99
| Cycle | `C1`, 28 September–20 December 2026, Asia/Bangkok |
10-
| Basis | [Strategy revision 1.4, §8](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md#8-twelve-week-implementation-schedule) |
10+
| Basis | [Strategy revision 1.6, §8](../../planning/PyBLE_Implementation_Plan_and_Strategy_v1.0.md#8-twelve-week-implementation-schedule) |
1111
| Product Goal and quality rules | [Working agreement](01_Overview_and_Scrum_Framework.md) |
1212
| Acceptance criteria | [Product backlog and stories](05_Product_Backlog_and_Stories.md) |
1313
| Task-level proposal | [Sprint backlogs](06_Sprint_Backlogs.md) |
1414

15-
**31 October implementation update:** bounded recovery work is underway for candidate `0.3.0+9`, following the user’s next-release request. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) records source, automated and physical states separately. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours below remain the planning baseline; no completed Sprint, adopted 60-hour capacity forecast or release admission is inferred.
15+
**31 October continuation update:** bounded recovery candidate `0.3.0+9` is merged in [PR #40](https://github.com/PyBLE-dev/PyBLE/pull/40) at `6f5b3ea`; the integrated suite and post-merge CI pass. Both tablets have local candidate installations and native storage restart evidence. [C1-S2 implementation record](c1-s2/00_Execution_Record.md) tracks the remaining physical acceptance separately from release qualification. S1 remains six Done / two Prepared / four Awaiting evidence. Original dates/hours remain the planning baseline; the current continuation order and unresolved capacity inputs are recorded in the [Sprint plan](04_Sprint_Plan.md#31-october-continuation-order-and-reforecast).
1616

1717
## Forecast and commitment boundary
1818

@@ -44,7 +44,7 @@ The remaining 18h under S2–S4's combined 78h ceiling cannot silently absorb al
4444
The next-release instruction selects PYB-006.2 engineering and its required
4545
verification, supporting PYB-009.1 recipe work and applicable PYB-008.1 evidence.
4646
The [execution record](c1-s2/00_Execution_Record.md) owns actual results. Source
47-
storage/coordinator/UI/guard work is implemented; the usable story remains in
47+
storage/coordinator/UI/guard work is merged and automated checks pass; the usable story remains in
4848
progress until all applicable acceptance passes. The original 12–25 October S2
4949
window is historical; calendar position does not mark S2 or S3 complete.
5050

@@ -54,6 +54,32 @@ the tables below. Reorder displaced matrix/activation work with actual capacity;
5454
keep pilot evidence and the M-01/SG0 gap visible while known engineering work
5555
continues. No automatic completion of S1, SG0, broader A-24 or PyBLE Ready follows.
5656

57+
## 31 October continuation order and reforecast
58+
59+
The user requested completion of the remaining work after reviewing the stage
60+
assessment. The selected engineering order is below. This records actual work
61+
selection; it does not invent a completed Sprint Planning event, human staffing,
62+
measured velocity or a new delivery deadline. The original C1-S3 window is
63+
26 October–8 November; unfinished S2 acceptance carries into that window.
64+
65+
| Order / stream | Current work and completion evidence | Forecast treatment |
66+
|---|---|---|
67+
| 1 — M-02 recovery acceptance | Complete remaining representative iPad/Android recovery, current-board consent and Blocks-to-Editor checks; reconcile DR-T01–14 against exact artifacts and review the result | Selected now; record actual duration and residual scenarios before forecasting completion |
68+
| 2 — M-04 release qualification | Freeze the selected app artifacts and complete the applicable five-profile × two-platform affected app matrix, provenance and release review | Follows accepted recovery behavior; unchanged firmware does not automatically require fresh firmware-release qualification |
69+
| 3 — M-05 distribution | Prepare the existing Play/TestFlight handoffs; submit only an admitted candidate; record processing/availability and installed-channel evidence separately | Preparation can overlap qualification; external access/review duration is unresolved |
70+
| Parallel — M-01 pilot baseline | Confirm pilot owner, primary cohort, exact reference setup and actual weekly capacity; collect real consented baseline sessions using the prepared kit | Awaiting human inputs; engineering observations are not participant starts |
71+
| Later — M-03/M-06 learning | Collect useful-task and prospective day-7–14 follow-up observations from actual consenting activations | Preserve original recruitment targets; reforecast dates after real recruitment and capacity are known |
72+
| Conditional — Ready rehearsal | Use an assigned second operator for one exact profile only after capacity is selected | Remains optional; it is not a prerequisite for unrelated maintenance delivery |
73+
74+
Required planning inputs are the named pilot/recruitment owner, selected cohort
75+
and reference setup, actual engineering/pilot hours per week, and any existing
76+
consented session records. Until supplied, the 20h/week assumption, 45–72h
77+
recovery estimate and 60h allocation option remain historical planning inputs.
78+
Do not subtract agent wall-clock time from human capacity or relabel elapsed
79+
calendar time as measured engineering effort. Maintain the original 22 November
80+
activation target alongside any later approved forecast; missed windows remain
81+
missing or late evidence.
82+
5783
## Capacity model
5884

5985
The source assumes one primary maintainer at 20 hours/week. Confirm real availability and any contributor capacity at Planning; extra roles do not create extra hours.

0 commit comments

Comments
 (0)