Skip to content

Commit b4dd0c7

Browse files
committed
[chore] sync published v0.6.1 Features into primary checkout
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent d3ca078 commit b4dd0c7

12 files changed

Lines changed: 1435 additions & 69 deletions

‎docs/specifications/website.md‎

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,13 @@ The page complements `/flash`: it explains a release, while `/flash` remains
463463
the sole authority for the version, exact profiles, qualification state, and
464464
actions currently selected at build time.
465465

466-
The initial reference snapshot is qualified public firmware `v0.6.0` and
467-
PBLE/1. It MUST visibly call itself a versioned snapshot rather than a live
466+
The current reference snapshot is owner-confirmed public firmware `v0.6.1`
467+
and PBLE/1; the historical v0.6.0 SVG MUST remain available unchanged.
468+
The v0.6.1 reference MUST distinguish owner confirmation from incomplete
469+
automated HIL records and link the publication confirmation. It MUST NOT
470+
carry forward v0.6.0's five passed HIL rows, measured throughput, or reference
471+
board identities as new v0.6.1 measurements.
472+
It MUST visibly call itself a versioned snapshot rather than a live
468473
installer promise, link to `/flash` for current availability, and avoid
469474
describing a later or unselected release as current. Its architecture diagram
470475
MUST say that it is a functional diagram, not a physical board drawing,
@@ -502,8 +507,18 @@ The HTML reference MUST cover all of these release-bound surfaces:
502507
claim in this release, runtime-dependent Stop behavior, and possible console
503508
drops under sustained output.
504509

505-
The reference MUST link to the immutable public `v0.6.0` release descriptor,
506-
the matching source tag, and the PBLE/1 specification. It MUST not duplicate
510+
The v0.6.1 diagram and its reflowing description MUST describe unchanged
511+
24-opcode PBLE/1 compatibility, per-session negotiation and bounded fragments,
512+
fresh RUN globals and run-owned stdin, CRC-backed upload resume and mutation
513+
exclusion, checked persistent settings, and LFS2 on all five official profiles.
514+
Only conclusively erased media may be formatted after mount failure; nonblank
515+
or uncertain media must be preserved for USB recovery without agent startup.
516+
Neither the diagram nor its HTML may promise BLE access through that refusal.
517+
518+
The reference MUST link to the immutable public `v0.6.1` release descriptor,
519+
available version-bound source references, and the PBLE/1 specification.
520+
An unpublished GitHub tag MUST NOT be presented as a working source link.
521+
It MUST not duplicate
507522
firmware binaries or fetch release data at runtime. Calls to action MUST send a
508523
user to `/flash` to install an exact selected profile and `/learn` for guided
509524
use. The route, its full-size diagram asset, and its content MUST render without
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Firmware v0.6.1 functional diagram publication
2+
3+
Published on 2026-09-11 at https://pyble.dev/features.
4+
5+
- Source commit: `44717bdac281903912a5106f7dc1d37971197bf2`.
6+
- Source worktree:
7+
`/Users/vyv/Working/SciLabPro/PyBLE-worktrees/web-v061-owner-confirmed`.
8+
- Source branch: `release/v061-owner-confirmed` (local; no push performed).
9+
- New SVG: `/features/pyble-firmware-v0.6.1-functional-block-diagram-0d2bb826c64f8.svg`.
10+
- SVG SHA-256:
11+
`0d2bb826c64f8ba24f34bc70d2a9ba5750bb77b1a7f6a0998a9baccd0123b768`.
12+
- Source-backed changes include LFS2 on all five profiles, session admission,
13+
fresh RUN globals, run-owned stdin, CRC-backed resume, and checked settings.
14+
- The page explains the nonblank-media USB-recovery exception and distinguishes
15+
owner qualification confirmation from incomplete automated HIL records.
16+
- Historical v0.6.0 diagram retained unchanged.
17+
18+
Focused website validation: expected RED (5 failures, 1 pass), followed by
19+
46 passing tests in the page, Sites-output, and VPS-contract suites. Production
20+
static build completed. The SVG, desktop page, and emulated 390-pixel mobile
21+
viewport were visually reviewed. Mobile document width was 390 pixels; only
22+
the diagram viewport scrolled (360-pixel viewport, 1040-pixel inner content).
23+
Raw PNGs remain in the ignored local qualification workspace.
24+
25+
Active VPS release: `/srv/pyble/releases/20260911-v061-functional-diagram`.
26+
Previous owner-confirmed release retained for rollback. Only Features documents,
27+
its new SVG/protocol snapshot, and supporting static bundles were overlaid.
28+
Flash HTML/RSC, release selection, Learn documents, and older firmware artifacts
29+
were preserved; no firmware, App, or hardware qualification action occurred.
30+
31+
Public response hashes after activation:
32+
33+
- Features HTML: `244e463ccc4f78fa77a9e8e336d20cf6fa39fcb231e64208688995e676650f9c`.
34+
- Flash unchanged: `3dbcbe67dce7976f3c29e1760bec99d9659ef9aa962c440cbc469beb48d462e3`.
35+
- Learn unchanged: `7985529abf7960687fa0e59e5b669f649b881ee04c432e1bbb36e5ae8ff8a677`.
36+
- Protocol snapshot: `e88387706bf3705edb0d889fd9870800aa95306d4a17b55398cacbb364fa5c2d`.
37+
38+
## Primary checkout synchronized
39+
40+
The finished Features changes were subsequently integrated into
41+
`/Users/vyv/Working/SciLabPro/PyBLE`, including the updated SVG under
42+
`tools/web/public/features`, page source, specification, provenance, protocol
43+
snapshot, owner-confirmation document, and focused tests/deployment references.
44+
All 46 focused website tests passed in that checkout. The updated tracked page
45+
and deployment-reference files exactly match the published source commit.
46+
47+
The live Features HTML and SVG were already current and matched the recorded
48+
hashes. No redundant deployment, firmware change, Flash change, or Learn change
49+
was made during this synchronization. Unrelated local changes were preserved.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<!-- SPDX-License-Identifier: MIT -->
2+
<!-- Part of PyBLE (https://pyble.dev) — see /LICENSE. -->
3+
4+
# Firmware functional diagram provenance — 2026-09-11
5+
6+
Original PyBLE functional architecture SVG, updated from the preserved
7+
v0.6.0 diagram. No vendor artwork and no generated board likeness is included.
8+
Existing engineering-document styling, selectable text, orthogonal connections,
9+
and exact profile boundaries are retained.
10+
11+
- Public path: `/features/pyble-firmware-v0.6.1-functional-block-diagram-0d2bb826c64f8.svg`.
12+
- Dimensions: 1920 × 1470; size: 22,446 bytes.
13+
- SHA-256: `0d2bb826c64f8ba24f34bc70d2a9ba5750bb77b1a7f6a0998a9baccd0123b768`.
14+
- Firmware: 0.6.1; source: `c8f549eeabe6d2b8c2766eab022517944bb09c8c`.
15+
- Release metadata: `/firmware/v0.6.1/release.json`, SHA-256
16+
`71f6aca6df07e31a1f54c7f70a48d82c7fe26b1c8ca0626a8ffc57c804fbb1bd`.
17+
- Publication basis: project-owner qualification confirmation on 2026-09-11,
18+
recorded at `/firmware-v0.6.1-owner-confirmation.md`. No missing automated
19+
HIL result is represented as passed.
20+
21+
## Source review
22+
23+
The unchanged PBLE/1 surface is 24 operations and 15 serialized capability keys.
24+
Actual overlays at `firmware/board_overlays/*/_boot.py` now mount LFS2 through
25+
`firmware/pyble/pyble_workspace.py`; ESP partition metadata named `data,fat`
26+
does not establish the mounted filesystem type.
27+
28+
The revised modules correspond to the v0.6.1 amendments in
29+
`docs/specifications/firmware/specs.md`: FR-BLE-10 (bounded fragments);
30+
FR-PROTO-2/3/5/7/8/9 (session and command admission); FR-RUN-1/2/9 (fresh globals);
31+
FR-CON-3 (run-owned input); FR-FS-1/4/7/8/9/14/15 (resume, reserve, mutations);
32+
FR-BOOT-3/6 (durable settings and non-destructive mount refusal).
33+
Both native C and portable Python implementations were consulted.
34+
35+
The public protocol snapshot `/reference/firmware-v0.6.1/protocol.md` is
36+
byte-identical to the protocol specification at the firmware source commit.
37+
SHA-256: `e88387706bf3705edb0d889fd9870800aa95306d4a17b55398cacbb364fa5c2d`.
38+
The source commit/tag is not yet available through the public GitHub API, so
39+
the page links the published release notes/source identity and exact protocol
40+
snapshot instead of inventing an available GitHub source URL.
41+
42+
## Review and publication boundaries
43+
44+
The SVG's title, description, page alternative text, visible caption, and
45+
reflowing HTML cover the new behavior. Nonblank or uncertain failed mounts
46+
require USB recovery without agent startup. Fresh globals do not imply a full
47+
VM or hardware reset. The diagram does not claim authentication, lossless
48+
console output, additional opcodes, or new board-specific hardware APIs.
49+
50+
Header/body spacing and the provisioning warning were adjusted for legibility.
51+
Raw PNG layout renders remain in the ignored local review workspace.
52+
The SVG has no scripts, embedded rasters, external references, or foreignObject.
53+
The historical v0.6.0 SVG and its provenance remain unchanged.
54+
55+
This website-only update does not change firmware bytes, the selected Flash
56+
release, App binaries, or qualification evidence, and performs no hardware tests.

‎tools/web/deploy/vps/deploy.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ for route in / /app /privacy /support /flash /features /learn /learn/setup /lear
11731173
"${normalized_headers}"
11741174
done
11751175

1176-
feature_diagram_path=features/pyble-firmware-v0.6.0-functional-block-diagram-473a85d475aa.svg
1176+
feature_diagram_path=features/pyble-firmware-v0.6.1-functional-block-diagram-0d2bb826c64f8.svg
11771177
feature_diagram_body="${smoke_root}/feature-diagram.svg"
11781178
feature_diagram_headers="${smoke_root}/feature-diagram.headers"
11791179
curl --fail --silent --show-error --max-time 30 \

0 commit comments

Comments
 (0)