Skip to content

Commit 6a6d086

Browse files
committed
[docs] record bounded recovery candidate and remaining release evidence
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 322e153 commit 6a6d086

17 files changed

Lines changed: 402 additions & 67 deletions

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ADR 0010 — The working-loop current document is a volatile in-memory provider; feature packages cross-import public providers
22

3-
**Status:** Accepted (2026-07-02). Extends [ADR-0007](0007-riverpod-state-management.md) (Riverpod / D3) and [ADR-0009](0009-runtime-connection-manager.md) (runtime session behind the seam). Enables the **working feature loop** increment across stories **A-20** (editor), **A-21** (console), **A-16** (run-control toolbar; wire lands on the A-11 client) and **A-30** (files). Does **not** supersede the `Connection` seam (D1) or the offline-first mandate — it scopes a temporary, recorded deviation with a hard re-freeze at **A-24**.
3+
**Status:** Accepted (2026-07-02); volatile-only current-text limitation partially superseded by [ADR-0048](0048-bounded-current-text-draft-recovery.md) in the 2026-10-31 candidate. The historical decision below remains the original working-loop record. Extends [ADR-0007](0007-riverpod-state-management.md) (Riverpod / D3) and [ADR-0009](0009-runtime-connection-manager.md) (runtime session behind the seam). Enables the **working feature loop** increment across stories **A-20** (editor), **A-21** (console), **A-16** (run-control toolbar; wire lands on the A-11 client) and **A-30** (files). Does **not** supersede the `Connection` seam (D1) or the offline-first mandate — it scopes a temporary, recorded deviation with a hard re-freeze at **A-24**.
44

55
## Context
66

@@ -66,6 +66,9 @@ the rich-editor deferral. [ADR-0048](0048-bounded-current-text-draft-recovery.md
6666
now specifies the bounded current-text recovery successor, with its
6767
[write/failure/board-authority contract](../specifications/App/current-draft-recovery.md)
6868
and [C1-S1 review and sizing](../developments/2026-q4-reliable-workflow/c1-s1/03_Recovery_Design_and_Sizing.md).
69-
The inspected source is still volatile; implementation and acceptance evidence
70-
are pending. The remaining A-24 project, settings, console, import and Blocks
71-
obligations are carried, not satisfied by the successor design.
69+
That 25 September inspection was design-only. The 31 October candidate now
70+
implements the bounded current-text successor; its
71+
[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
74+
Blocks obligations remain carried.

‎docs/decisions/0011-connection-gated-shell.md‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,11 @@ Unchanged rejection list, seam, and layering as in [ADR-0009](0009-runtime-conne
3636
specify a narrow successor exception: a local recovery preview/Restore/Discard
3737
panel must be reachable without a board, permission prompt or network access.
3838
The normal IDE remains connection-gated; this is not a full offline IDE or an
39-
authorization to restore board-write authority. Implementation is pending, so
40-
the current shell behavior above remains the recorded runtime baseline.
39+
authorization to restore board-write authority. The 31 October candidate now
40+
implements this narrow exception: local storage is resolved before the Connect
41+
workflow mounts, and a local preview/copy surface remains reachable while
42+
disconnected. The ordinary IDE remains connection-gated. See the
43+
[C1-S2 record](../developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md)
44+
for pending integration, physical evidence and release admission. The earlier
45+
shell behavior above remains the historical baseline, not a description of the
46+
candidate recovery gate.

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

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@
33

44
# ADR 0048 — Recover one current text draft through the planned Drift store
55

6-
**Status:** Specified for implementation (2026-09-25) under the user's request
7-
to execute C1-S1. Source implementation and physical acceptance remain pending; no named human
8-
sign-off is claimed and this is not release admission.
6+
**Status:** Accepted for the bounded implementation; candidate source implemented
7+
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.
910

1011
## Context
1112

1213
[ADR-0010](0010-working-loop-in-memory-document.md) recorded an intentionally
1314
volatile current document and deferred Drift persistence to A-24. That
14-
limitation remains in the inspected source. Its old rich-editor deferral has
15+
limitation was present in the C1-S1 inspected source. The 31 October candidate
16+
implements the bounded successor described below. Its old rich-editor deferral has
1517
already been superseded by [ADR-0012](0012-flutter-code-editor-behind-editorsurface.md),
1618
so the persistence problem must be scoped against the current rich Editor,
1719
Blocks handoff and file-backed Run implementation.
1820

19-
The current provider has a mutation epoch, but Save/Run/Files completion guards
20-
still compare document values. A stable Connection facade also makes object
21+
The C1-S1 provider had a mutation epoch, but Save/Run/Files completion guards
22+
still compared document values. A stable Connection facade also makes object
2123
identity insufficient to bind a multi-step text action to one attached board.
2224
Recovery must not amplify either gap by restoring a historical target as
2325
current write authority.
@@ -29,7 +31,7 @@ records this distinction and the proposed reforecast.
2931
## Decision
3032

3133
Adopt [the bounded current-draft contract](../specifications/App/current-draft-recovery.md)
32-
for the next implementation slice:
34+
for the bounded implementation slice:
3335

3436
1. Use one current-text slot in the planned Drift `projects`/`project_files`
3537
subset and single SettingsStore. Commit its content and recovery metadata
@@ -49,7 +51,7 @@ for the next implementation slice:
4951
Keep Blocks graph recovery and the rest of A-24 explicitly carried.
5052

5153
This decision supersedes only ADR-0010's volatile-only current-text design for
52-
the future accepted slice. It does not retroactively claim that released builds
54+
the bounded candidate slice, subject to its acceptance evidence. It does not retroactively claim that released builds
5355
persist drafts, change PBLE/1 or remove the existing provider/Connection seams.
5456

5557
## Alternatives considered
@@ -64,9 +66,11 @@ persist drafts, change PBLE/1 or remove the existing provider/Connection seams.
6466

6567
## Consequences
6668

67-
The implementation needs the actual Drift/native database dependencies,
68-
versioned schemas, local recovery UI and stronger completion guards. None of
69-
these exist merely because this ADR is written. The estimate exceeds the
70-
original C1-S2 recovery allowance; future Sprint selection must be reforecast
71-
without weakening the failure cases. The narrower feature can eventually
72-
protect useful current text, while full project persistence remains unfinished.
69+
The candidate adds Drift/native database dependencies, a versioned schema,
70+
local recovery UI and epoch/session completion guards. The
71+
[implementation record](../developments/2026-q4-reliable-workflow/c1-s2/00_Execution_Record.md)
72+
and [operator recipe](../developments/2026-q4-reliable-workflow/c1-s2/01_Operator_Recipe.md)
73+
record their evidence and remaining admission work. The estimate exceeds the
74+
original C1-S2 allowance; the 60-hour S2–S4 option remains a planning proposal,
75+
not measured effort or confirmed staffing. Physical evidence is still required.
76+
Full project persistence and Blocks graph recovery remain unfinished.

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
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.
22+
2123
## Navigation and ownership of information
2224

2325
| File | Canonical responsibility in this package | Update trigger |
@@ -29,6 +31,7 @@ This package derives execution views from the strategy. It does not replace norm
2931
| [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 |
3032
| [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 |
3133
| [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 |
3235

3336
```mermaid
3437
flowchart LR
@@ -61,7 +64,7 @@ flowchart LR
6164
| 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 |
6265
| Firmware v0.6.1 is published on owner confirmation across five exact profiles | Pending automated results stay pending; no automatic PyBLE Ready badge |
6366
| Issue #24 is closed/superseded | Do not resurrect its old release umbrella as a dependency |
64-
| Editor draft is volatile under [ADR-0010](../../decisions/0010-working-loop-in-memory-document.md) | Close an accepted subset of A-24; do not claim full project persistence or Blocks recovery |
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 |
6568
| Lifecycle protections, tutorials, imports, and test tools already exist | Reuse them; refine only observed gaps and the documented persistence gap |
6669

6770
## Applying Scrum to PyBLE

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
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.
17+
1618
## Product Goal and decision principle
1719

1820
**Proposed Product Goal:** tablet-owning makers can complete useful BLE board work,
@@ -35,8 +37,9 @@ continues to communicate direction without promising release dates.
3537
These records distinguish the historical baseline from the dated device retry.
3638
The [C1-S1 record](c1-s1/00_Execution_Record.md) records completed design/evidence
3739
preparation and existing channel installations separately from prepared pilot
38-
work and missing observations. Future work remains **Proposed** until explicitly
39-
selected.
40+
work and missing observations. The user selected bounded recovery implementation on 31 October. Later work
41+
remains **Proposed** until selected; that instruction does not establish actual
42+
team capacity or a completed formal Sprint.
4043

4144
| Baseline item | Recorded state at the planning date | Consequence for this roadmap |
4245
|---|---|---|
@@ -46,7 +49,7 @@ selected.
4649
| 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 |
4750
| 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 |
4851
| 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 |
49-
| Durable drafts | A-24/ADR-0010 current-document persistence remains a recorded implementation gap | Select a bounded local recovery increment with explicit text/Blocks scope |
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 |
5053
| 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 |
5154

5255
The [Android publication review](../../testing/website/android-open-testing-2026-09-25.md)

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

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

66
| Control | Value |
77
|---|---|
8-
| Status | M-01/SG0 remains Blocked on 25 September by pilot ownership/cohort/setup and capacity decisions; existing channel installations verified on retry. Other milestones remain Proposed and forecast windows need replanning |
8+
| 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 |
1010
| Source | [Implementation strategy revision 1.4](../../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.
16+
1517
## Assessment and evidence states
1618

1719
Use **Proposed** until work is selected. At a milestone assessment, record one of
@@ -45,7 +47,7 @@ no role in this table implies committed staffing or independent review.
4547
| ID / status | Outcome and value | Forecast window / stories | Dependencies and evidence | Assessment / accountable contribution |
4648
|---|---|---|---|---|
4749
| M-01 — Blocked (25 Sep) | Accepted baseline and bounded cycle scope make installation, pilot, and engineering decisions reproducible | C1-S1, 28 Sep–11 Oct; PYB-001/003/004, residual 002, sizing 006/009 | Dated channel/install/source mapping or explicit owned unknowns; one primary cohort/job; safe task/consent rules; initial observations or recruitment blocker; actual capacity; persistence and physical-matrix estimates | SG0: accept a bounded scope or record gaps; Product Owner with release, pilot, and Developers |
48-
| M-02 — Proposed | A usable, bounded local-draft recovery increment protects accepted user work after interruption | C1-S2–C1-S3, 12 Oct–8 Nov; selected PYB-006 scope, supporting 009/008, observed 005 only if selected | Accepted App specification/TDD and ADR-0010 change; text/Blocks scope; persistence boundary; relaunch, interrupted-write, and corrupt-state scenarios; no implicit board overwrite/run; relevant regression and physical evidence | Review against the selected story acceptance criteria and Definition of Done; Developers with a named review path |
50+
| M-02 — In progress; acceptance pending | A usable, bounded local-draft recovery increment protects accepted user work after interruption | C1-S2–C1-S3, 12 Oct–8 Nov; selected PYB-006 scope, supporting 009/008, observed 005 only if selected | Accepted App specification/TDD and ADR-0010 change; text/Blocks scope; persistence boundary; relaunch, interrupted-write, and corrupt-state scenarios; no implicit board overwrite/run; relevant regression and physical evidence | Review against the selected story acceptance criteria and Definition of Done; Developers with a named review path |
4951
| M-03 — Proposed | Observed first-use and meaningful second-task evidence explains activation and its largest obstacle | C1-S4, 9–22 Nov; PYB-004/011 and justified 005/012 | Safe recorded pilot setup; at least 12 eligible primary-cohort task starts, all outcomes retained; successful unassisted timing; Task C attempts, prior workflow, assistance and reasons | SG2: assess provisional completion/timing targets and severe failures; pilot lead supplies evidence, Product Owner records next investment |
5052
| M-04 — Proposed | A frozen maintenance candidate is qualified for its declared release scope | Normally C1-S5, 23 Nov–6 Dec; PYB-008/009/013 and included fixes | Applicable exact-artifact matrix and normative gates pass; provenance/recovery/instructions; no unresolved release-blocking data-loss, unintended/cross-session write, or critical workflow regression within the accepted threat model | SG1: release or submission decision with required sign-off; release owner and QA/review path |
5153
| M-05 — Proposed | Users can obtain the selected qualified app build through a verified existing channel | C1-S5–C1-S6, 23 Nov–20 Dec; PYB-014 and residual 002 | M-04; distribution-owner access; separate submission, availability, installed build/provenance, and installation outcome records; current user-facing claims | Verified-channel milestone passes only for the stated evidence; store delays are recorded as blockers; release owner |

0 commit comments

Comments
 (0)