Freeze phase 1 BLE protocol core migration

This commit is contained in:
John Poole 2026-05-17 13:32:09 -07:00
commit 91037ea77d
3 changed files with 382 additions and 0 deletions

View file

@ -0,0 +1,266 @@
============================================================
BLE Reticulum Migration Executive Summary
============================================================
1. Counts by phase/status/tag
phase status tag symbol_c
-------------- -------------- ---------- --------
0_inventory REVIEWED GLUE 39
0_inventory REVIEWED PLATFORM 33
0_inventory REVIEWED TEST 3
1_protocol_cor FIELD_ACCEPTED CORE 16
e
2. Phase-1 C++ candidates
source_file class_name symbol_nam line_num tag status
-------------- -------------- ---------- -------- ------ ------------------------------------------------------------
src/ble_reticu BLEFragmen 52 CORE FIELD_ACCEPTED
lum/BLEFragmen ter
tation.py
src/ble_reticu BLEFragmenter __init__ 68 CORE FIELD_ACCEPTED
lum/BLEFragmen
tation.py
src/ble_reticu BLEFragmenter fragment_p 82 CORE FIELD_ACCEPTED
lum/BLEFragmen acket
tation.py
src/ble_reticu BLEFragmenter get_fragme 158 CORE FIELD_ACCEPTED
lum/BLEFragmen nt_overhea
tation.py d
src/ble_reticu BLEReassem 176 CORE FIELD_ACCEPTED
lum/BLEFragmen bler
tation.py
src/ble_reticu BLEReassembler __init__ 187 CORE FIELD_ACCEPTED
lum/BLEFragmen
tation.py
src/ble_reticu BLEReassembler receive_fr 205 CORE FIELD_ACCEPTED
lum/BLEFragmen agment
tation.py
src/ble_reticu BLEReassembler _reassembl 380 CORE FIELD_ACCEPTED
lum/BLEFragmen e
tation.py
src/ble_reticu BLEReassembler cleanup_st 402 CORE FIELD_ACCEPTED
lum/BLEFragmen ale_buffer
tation.py s
src/ble_reticu BLEReassembler get_statis 429 CORE FIELD_ACCEPTED
lum/BLEFragmen tics
tation.py
src/ble_reticu BLEReassembler reset_stat 443 CORE FIELD_ACCEPTED
lum/BLEFragmen istics
tation.py
src/ble_reticu HDLCFramer 450 CORE FIELD_ACCEPTED
lum/BLEFragmen
tation.py
src/ble_reticu HDLCFramer frame_pack 464 CORE FIELD_ACCEPTED
lum/BLEFragmen et
tation.py
src/ble_reticu HDLCFramer deframe_pa 491 CORE FIELD_ACCEPTED
lum/BLEFragmen cket
tation.py
src/ble_reticu BLEInterface _get_fragm 1858 CORE FIELD_ACCEPTED
lum/BLEInterfa enter_key
ce.py
src/ble_reticu BLEInterface _compute_i 1871 CORE FIELD_ACCEPTED
lum/BLEInterfa dentity_ha
ce.py sh
3. Symbols marked TESTED or ACCEPTED
source_file class_name symbol_nam phase status notes_preview
-------------- -------------- ---------- -------- ------ ------------------------------------------------------------
src/ble_reticu BLEFragmen 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen ter ol_core ACCEPT ol cell: BLEFragment
tation.py ED
src/ble_reticu BLEFragmenter __init__ 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen ol_core ACCEPT ol cell: BLEFragment
tation.py ED
src/ble_reticu BLEFragmenter fragment_p 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen acket ol_core ACCEPT ol cell: BLEFragment
tation.py ED
src/ble_reticu BLEFragmenter get_fragme 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen nt_overhea ol_core ACCEPT ol cell: BLEFragment
tation.py d ED
src/ble_reticu BLEReassem 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen bler ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu BLEReassembler __init__ 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu BLEReassembler receive_fr 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen agment ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu BLEReassembler _reassembl 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen e ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu BLEReassembler cleanup_st 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen ale_buffer ol_core ACCEPT ol cell: BLEReassemb
tation.py s ED
src/ble_reticu BLEReassembler get_statis 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen tics ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu BLEReassembler reset_stat 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen istics ol_core ACCEPT ol cell: BLEReassemb
tation.py ED
src/ble_reticu HDLCFramer 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen ol_core ACCEPT ol cell: HDLCFramer
tation.py ED
src/ble_reticu HDLCFramer frame_pack 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen et ol_core ACCEPT ol cell: HDLCFramer.
tation.py ED
src/ble_reticu HDLCFramer deframe_pa 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEFragmen cket ol_core ACCEPT ol cell: HDLCFramer.
tation.py ED
src/ble_reticu BLEInterface _get_fragm 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEInterfa enter_key ol_core ACCEPT ol cell: _get_fragme
ce.py ED
src/ble_reticu BLEInterface _compute_i 1_protoc FIELD_ Imported from Codex_response_20260616_1514.md; original symb
lum/BLEInterfa dentity_ha ol_core ACCEPT ol cell: _compute_id
ce.py sh ED
4. Remaining CORE symbols not accepted
5. Unknown or needs-review symbols
6. Do-not-port-yet inventory
tag symbol_count
-------------- --------------
GLUE 39
PLATFORM 33
TEST 3
7. Candidate next tasks
8. Latest review notes
reviewed_at reviewer source_fil class_na symbol old_status new_status note_preview
-------------- -------------- ---------- -------- ------ ------------------------------------------------------------ -------------- ------------------------------------------------------------
2026-05-17 20: jlpoole + Code src/ble_re BLEInter _compu FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: Identity helper C++ equivalents accepted after A
25:58 x + ChatGPT ticulum/BL face te_ide RM equivalence tests and successful bila
EInterface ntity_
.py hash
2026-05-17 20: jlpoole + Code src/ble_re BLEInter _get_f FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: Identity helper C++ equivalents accepted after A
25:58 x + ChatGPT ticulum/BL face ragmen RM equivalence tests and successful bila
EInterface ter_ke
.py y
2026-05-17 19: jlpoole + Code src/ble_re BLEFra FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL gmente ed after live bilateral Constitution tra
EFragmenta r
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLERea FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL ssembl ed after live bilateral Constitution tra
EFragmenta er
tion.py
2026-05-17 19: jlpoole + Code src/ble_re HDLCFr FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL amer ed after live bilateral Constitution tra
EFragmenta
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEFragm __init FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL enter __ ed after live bilateral Constitution tra
EFragmenta
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEFragm fragme FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL enter nt_pac ed after live bilateral Constitution tra
EFragmenta ket
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEFragm get_fr FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL enter agment ed after live bilateral Constitution tra
EFragmenta _overh
tion.py ead
2026-05-17 19: jlpoole + Code src/ble_re BLEReass __init FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler __ ed after live bilateral Constitution tra
EFragmenta
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEReass _reass FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler emble ed after live bilateral Constitution tra
EFragmenta
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEReass cleanu FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler p_stal ed after live bilateral Constitution tra
EFragmenta e_buff
tion.py ers
2026-05-17 19: jlpoole + Code src/ble_re BLEReass get_st FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler atisti ed after live bilateral Constitution tra
EFragmenta cs
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEReass receiv FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler e_frag ed after live bilateral Constitution tra
EFragmenta ment
tion.py
2026-05-17 19: jlpoole + Code src/ble_re BLEReass reset_ FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL embler statis ed after live bilateral Constitution tra
EFragmenta tics
tion.py
2026-05-17 19: jlpoole + Code src/ble_re HDLCFram defram FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL er e_pack ed after live bilateral Constitution tra
EFragmenta et
tion.py
2026-05-17 19: jlpoole + Code src/ble_re HDLCFram frame_ FIELD_ACCEPTED FIELD_ACCEPTED 2026-05-17: C++ fragmentation/reassembly/HDLC backend accept
27:31 x + ChatGPT ticulum/BL er packet ed after live bilateral Constitution tra
EFragmenta
tion.py
2026-05-16 22: codex src/ble_re BLEFra REVIEWED Imported from Codex Markdown review. Rationale: Pure BLE pac
50:00 ticulum/BL gmente ket fragmentation format; RNS only loggi
EFragmenta r
tion.py
2026-05-16 22: codex src/ble_re BLEFragm __init REVIEWED Imported from Codex Markdown review. Rationale: MTU/header s
50:00 ticulum/BL enter __ izing logic.
EFragmenta
tion.py
2026-05-16 22: codex src/ble_re BLEFragm fragme REVIEWED Imported from Codex Markdown review. Rationale: Core packet-
50:00 ticulum/BL enter nt_pac to-fragments encoding.
EFragmenta ket
tion.py
2026-05-16 22: codex src/ble_re BLEFragm get_fr REVIEWED Imported from Codex Markdown review. Rationale: Pure sizing/
50:00 ticulum/BL enter agment overhead calculation.
EFragmenta _overh
tion.py ead

View file

@ -0,0 +1,63 @@
# Phase 1 Freeze: C++ BLE Protocol Core
Date: 2026-05-17
Host: jp / zerodev1 / zerodev2
Project: ble-reticulum
## Scope
Phase 1 extracted and validated the protocol-core portions of the BLE Reticulum implementation.
Accepted CORE symbols:
- BLEFragmenter
- BLEFragmenter.__init__
- BLEFragmenter.fragment_packet
- BLEFragmenter.get_fragment_overhead
- BLEReassembler
- BLEReassembler.__init__
- BLEReassembler.receive_fragment
- BLEReassembler._reassemble
- BLEReassembler.cleanup_stale_buffers
- BLEReassembler.get_statistics
- BLEReassembler.reset_statistics
- HDLCFramer
- HDLCFramer.frame_packet
- HDLCFramer.deframe_packet
- BLEInterface._get_fragmenter_key
- BLEInterface._compute_identity_hash
## Evidence
- Fragmentation/reassembly/HDLC C++ equivalence tests passed.
- Backend shim tests passed.
- Identity helper C++ equivalence tests passed.
- ARM compile and tests passed on zerodev1 and zerodev2.
- Bilateral US Constitution transfer field test succeeded using the C++ backend.
- Transfer completed 100% in both directions.
- No missing chunks.
- No duplicate chunks.
## Database status
SQLite migration database reports:
- 16 CORE symbols FIELD_ACCEPTED.
- No remaining CORE symbols not accepted.
- No UNKNOWN or NEEDS_REVIEW symbols.
- No candidate next tasks remaining for Phase 1.
## Freeze meaning
This freezes Phase 1 as a completed milestone.
Further changes to these accepted Phase 1 protocol-core functions should be treated as bug fixes or Phase 2 work, not as continuing Phase 1 development.
## Next likely work
Potential Phase 2 investigation:
- Determine whether BLEInterface._handle_identity_handshake can be split into:
- a pure protocol helper suitable for C++/Rust, and
- Python GLUE that performs Reticulum and driver state updates.

View file

@ -0,0 +1,53 @@
-- 20260517 ChatGPT
-- $Header$
--
-- Example:
-- cd /usr/local/src/ble-reticulum/migration
-- sqlite3 ble_migration.sqlite ".read sql/mark_identity_helpers_field_accepted_20260517.sql"
--
-- Purpose:
-- Mark BLEInterface identity helper extraction as field accepted
-- after C++ equivalence tests, ARM tests on Zero devices, and
-- successful bilateral Constitution transfer.
BEGIN;
UPDATE symbols
SET status = 'FIELD_ACCEPTED',
phase = '1_protocol_core',
notes = trim(COALESCE(notes, '') || char(10) ||
'2026-05-17: FIELD_ACCEPTED. Identity helper C++ equivalents passed ARM tests on zerodev1/zerodev2. zerodev2 example: test_identity_helpers_cpp_equivalence.py reported 20 passed, 1 skipped. Fragmentation equivalence plus backend shim regression tests reported 36 passed. Bilateral Constitution transfer using C++ backend completed 100% in both directions with no missing or duplicate chunks.'),
updated_at = CURRENT_TIMESTAMP
WHERE source_file = 'src/ble_reticulum/BLEInterface.py'
AND class_name = 'BLEInterface'
AND symbol_name IN (
'_get_fragmenter_key',
'_compute_identity_hash'
);
INSERT INTO reviews (
symbol_id,
reviewer,
old_tag,
new_tag,
old_status,
new_status,
note
)
SELECT
symbol_id,
'jlpoole + Codex + ChatGPT',
tag,
tag,
status,
'FIELD_ACCEPTED',
'2026-05-17: Identity helper C++ equivalents accepted after ARM equivalence tests and successful bilateral Constitution transfer. zerodev2 identity helper test: 20 passed, 1 skipped. Fragmentation/backend shim regression: 36 passed. Field transfer: 100% complete both directions, no missing chunks, no duplicates.'
FROM symbols
WHERE source_file = 'src/ble_reticulum/BLEInterface.py'
AND class_name = 'BLEInterface'
AND symbol_name IN (
'_get_fragmenter_key',
'_compute_identity_hash'
);
COMMIT;