Repository navigation
Conversation
|
M3C stacked-branch CI synchronization checkpoint: head |
M3B.1 accepted — receiver clock lease generation fencing (2026-10-15)Exact PR head:
What the code does: worker-owned, allocation-free clock lease with generation changes for source identity/port handoff, lock transitions, PTP clock steps, failed actuation, source timeout and STOP/START. Not claimed: external PTP hardware lock, PPS-to-smpCnt=0 receiver epoch binding, SMV realtime egress phase evidence, GPS traceability, physical ESP32-P4 acceptance, complete M3A/M3B/M3C, or |
M3A.1 checkpoint — canonical dual-role PTP clock authority (2026-10-15)Exact head: Evidence:
Implementation:
Next critical work: this is M3A.1, not complete M3. RECEIVER |
M3C.2 engineering checkpoint — external RECEIVER PTP-second / SV epoch leaseExact PR head: Implemented: optional RECEIVER Targeted GitHub Actions (triggered once; PR-body marker removed):
Not established: board hardware test, PPS GPIO capture, TX MAC timestamp to wire, external GPS/GM quality, relay conformance, or smpSynch=1/2. Documentation: |
M3D.1 — EMAC SOURCE/RECEIVER worker-lifetime ownership fence (2026-10-15)Exact Draft PR #166 head: Root cause: Changes: Regression: New exact-head M3D.1 gate: PTP Lab #38653932002 in progress at comment time; Routing Policy #38653932360 SUCCESS. One-shot Draft marker removed. Verify M3D.1 portable test and both firmware role builds before declaring new head green; this check does not upload a flashable artifact. Remaining: concurrent STOP during a not-yet-admitted START needs an explicit cancellation-ack handoff if callers can issue commands in parallel; do not infer this from the atomic admission guard alone. Hardware PTP GM discipline, external PPS, measured wire SV phase, sustained fault injection and public release are unverified. |
M3D.1 exact-head acceptance — SOFTWARE VERIFIED (2026-10-15)Head
M3D.1 closes the cross-role false-idle window by distinguishing SOURCE Evidence boundary: portable/core regression + ESP-IDF compilation only. No physical ESP32-P4, external GM/PPS, relay interoperability, or wire-time acceptance. Concurrent STOP-vs-in-flight START cancellation acknowledgment still needs a separate control-path regression; do not imply that the admission guard alone resolves it. Continue with M3D.2 lifecycle cancellation and hardware test artifact gate, keeping full CI cost scoped. |
M3D.2 acceptance — SOFTWARE VERIFIED + BENCH ARTIFACT VERIFIED (2026-10-15)Exact PR head: Scoped engineering: atomic START/config/STOP cancellation handshake with no lost-STOP gap at final release, measured clock/lease revocation while STOP pending, and 200 deterministic portable two-thread START/STOP interleavings. Follow-up commit Exact-head software checkpoint
Downloadable GitHub Actions artifact: Independent ZIP validation performed: 12 ZIP entries total, Hardware acceptance remains OPEN: This is a flashable experimental bench package, not an official production/stable firmware release and not a successful physical ESP32-P4 flash or GM/PPS/IED conformance test. Confirm board silicon revision and compare manifest offsets/config before flashing, then run SOURCE and RECEIVER separately with external GM lock, PPS/epoch, GM switch/STOP START fault injection and captured on-wire SV phase evidence. Do not merge/ship on software-only evidence. |
M3E.1 — bench evidence preflight merged into Draft stack (software-only, 2026-10-15)Current PR #166 head: Exact-head CI: M3E bench preflight #38660907259 SUCCESS (11 deterministic positive/adversarial Python tests, log confirms Real M3D.2 artifact preflight: ran the new host checker against the existing GitHub-generated ZIP No duplicate PTP/SV protocol parsing: for a real classic-PCAP, the CLI calls the existing streaming Intentionally NOT qualified: local artifact preflight has Next physical gate: use native ARStack Studio + isolated test process bus, flash one role with manifest offsets after preserving stable image, record |
M3E.2 — Ordered receiver acquisition/recovery/GM handoff evidence (2026-10-15)Exact Draft head: Root cause closed: M3E.1's Scenarios (host CLI Exact-head CI: ESP32-P4 PTP M3E Bench Preflight #38661979955 SUCCESS (26 Python positive/adversarial tests); CI Routing Policy #38661979985 SUCCESS. Heavy Draft firmware, PTP core, C++ and security suites SKIPPED by policy. Locally checked the real M3D.2 ZIP Evidence boundary: An OBSERVED lifecycle is only board-reported transitions sampled in serial logs. Captures may miss transient faults. Native C++ Next real gate: flash one role to the corresponding ESP32-P4 lab board, capture IDENTIFY + PTP2 status through lock/loss/relock/handoff, collect canonical VLAN-preserving PCAP per uninterrupted GM segment, obtain independent PPS/MAC TX/IED measurements. Then run |
* fix(ptp-m3e): reject stale SOURCE readiness and incomplete boot evidence * test(ptp-m3e): use actual serial line breaks in SOURCE fixtures
…uards (#224) * fix(ptp-m3): bound software phase tracking by observation uncertainty * test(ptp): avoid MSVC optional VLAN narrowing under warnings-as-errors * fix(esp32p4): enforce zero logging after PTP-aware sample clock START * ci(ptp): build all M3 portable test binaries before Windows CTest * ci(ptp): assert freshness-qualified SOURCE readiness instead of stale atomic read * ci(ptp): repair PTP role policy workflow YAML script indentation
2026-10-17 experimental M3 checkpoint — PR #223 + #224 integrated (host/firmware CI, not physical acceptance)Branch head:
Not satisfied / release blocked: physical EMAC/GM/PPS → actual SV sample-zero epoch and egress correlation; long-run drift/jitter/STOP-START/fault/GM handoff validation; source-scoped accurate Next priority: reconcile stacked PR #153/#157/#166 against diverged current main without blindly merging; test with portable/deterministic gates, then collect independent physical SOURCE/RECEIVER bench evidence using the existing M3E gate and canonical packet capture. Do not change |
* fix(ptp): add stale-safe second-boundary GPTimer arm rebasing * fix(esp32p4): rebase phase START at latest pre-arm instant * test(ptp): verify latency compensation, epoch defer and fail-closed starts * docs(ptp): document M3C.4 first-alarm measurement scope * docs(ptp-m3): trigger guarded SOURCE/RECEIVER bench checkpoint
* feat(sv-ptp): add bounded source-local wire/scheduler qualification gate * feat(sv-ptp): resolve SOURCE AUTO as local only after measured qualified phase * feat(sv-ptp): resolve SOURCE AUTO as local only after measured qualified phase * feat(esp32p4): connect source phase, MAC egress and AUTO local sync with loss revocation * fix(ptp): revoke SV AUTO local claim synchronously on PTP role stop * test(sv-ptp): reject stale, mismatched, imprecise and faulted AUTO local evidence * docs(sv-ptp): describe measured source-local AUTO and relay interoperability
CURRENT CHECKPOINT — M3E.2 ordered bench fault evidence (2026-10-15)
993bace2d4d6c7f530981743963d4ff6d2b37da6, Draft stacked on PR M2A: bounded continuous PTP–SMV phase authority and guarded ESP32-P4 observer #157. M3E.2 closes the false-positive software-evidence path for RECEIVER UNLOCKED-only logs.--scenariosupports measured-reported acquisition, loss/relock, GM handoff and SOURCE ready while retaining immutable hardware qualification fields.smpSynch=0; no release/merge/Studio installer change.PREVIOUS CHECKPOINT — M3E.1 Bench Evidence Preflight (2026-10-15)
a1ae7acaf50c079ec62197a1105c3d5e6b08fc08on top of M3D.2 validated firmware7d2d514; PR remains Draft stacked on M2A: bounded continuous PTP–SMV phase authority and guarded ESP32-P4 observer #157. No new firmware binary build required for this milestone.7d2d5146..., GitHub artifact ID11936537835, expires October 21, 2026 UTC; both images/checksums/flash offsets independently VERIFIED by new M3E tool.smpSynchstays 0. Do not promote to public stable without physical acceptance. Detailed checkpoint.PREVIOUS CHECKPOINT — M3D.2 + ESP32-P4 bench artifact (2026-10-15)
7d2d5146b1892124c1744ad26ab31b3489e8387e. Draft, stacked on PR M2A: bounded continuous PTP–SMV phase authority and guarded ESP32-P4 observer #157. M3A.1 canonical authority, M3B.1 RECEIVER lease, M3C.2 receiver PTP epoch binding, M3D.1 EMAC ownership, and M3D.2 START/STOP cancellation implemented.esp32p4-m3d-ptp-bench-7d2d5146b1892124c1744ad26ab31b3489e8387e(GitHub ID11936537835) under run #38655888456, retention until October 21, 2026 UTC. Contains independent SOURCE/RECEIVER application images, bootloader, partition table, config, offset mapping, SHA-256 manifests; ZIP independently verified. Bench flashing candidate only, not release.smpSynchpromotion (remains 0); no changes to native Studio installer or stable release. Heavy Draft matrices intentionally skipped; one-shot opt-in marker removed. Full acceptance in PR comment.PREVIOUS CHECKPOINT — M3D.1 (2026-10-15)
08a1a5e746a7615d53fd39aa911544243321fe78; Draft, stacked on PR M2A: bounded continuous PTP–SMV phase authority and guarded ESP32-P4 observer #157. M3A.1 canonical PTP authority, M3B.1 RECEIVER lease, M3C.2 external receiver SV epoch binding, and M3D.1 cross-role EMAC worker ownership are implemented.smpSynchremains 0. Do not merge/release on this evidence alone.Scope — first M3 continuity hardening checkpoint (stacked Draft on #157)
Base #157 at
90062f391a9c97cb1ff20d072b7f15ba4a777fac; independent from moving main.SvPtpPhaseAuthoritywith explicit integer-second identity for ISRsmpCnt=0deadlines, not just modulo-1s phase.Validation policy
One opt-in portable/ESP32-P4 SOURCE CI checkpoint only; unrelated Qt installers and full two-role matrix should skip. CI may be pending; do not claim success before results. No silicon/IED phase or alarm-free claims.
Tracks #154; does not complete M3A/M3B, RECEIVER phase qualification, MAC egress, or AUTO
smpSynch.Exact-head software verification — 2026-10-15
27f7d39a5ed170a86846804e96fe546642434833.Portable strict phase regressionPASS andCompile guarded ESP32-P4 SOURCE firmwarePASS. SOURCE/RECEIVER full two-role matrix intentionally SKIPPED, as were unrelated Draft workflows.one-shot checkpoint flagopt-in removed after dispatch. No automatic further costly jobs on routine Draft push.