Progress¶
As of: 2026-10-26 (Monday) · Logs read: 6 (2026-08-08 → 2026-08-21) · Plus: Todos.md (no box ticked by you and no Notes: written since the last run), a second 10-25 agent session's uncommitted vault edits (the afternoon one, with you at the bench: v3 v0.23, two agent-notes.md entries, the overnight block's steps), which this run checked against nrf_firmware and committed, the host suite (run), the state of all git repos, and the LAN server · Generated by: /parselogs
The archive is still exposed.
vaultFrozen.zipis still invault/and still served on the LAN::8080returned 200 with 110,954,965 bytes to this run. That's 33 days exposed.No log, but yesterday afternoon closed the loop with you in the room. The anchor beeped on a real
WATCH_REMOVEDfrom a real watch with a real schedule, and stopped onWATCH_WORN. The silent Sunrise Lock is explained: the anchor's clock was 9 h 03 min slow.This file is rewritten by
/parselogseach run. Anything you want to keep, put under Manual notes at the bottom — that section is preserved. Actionable items live in Todos, not here.
Headline¶
"Leave the watch behind and the room beeps" has now happened once, on v5, with a human listening. That was 15:13 on 10-25. A real schedule naming the real anchor was on both boards. The watch went unworn and sent WATCH_REMOVED over BLE. The anchor (now a -buzz image) beeped. The watch went back on and the beep stopped. Two caveats keep it a bench result. The worn edges came from the wornset override, because board #2 never reached a natural unworn: single IMU spikes of 421–1072 mm/s² against a 400 threshold keep restarting its 300 s clock. And the anchor only knew it was inside a window because someone set its clock by hand. It had been 9 h 03 min slow, which is why the last real Sunrise Lock was silent. Every anchor reboot puts that failure back. The next move is four decisions in Todos.md, not more code: the anchor's time source, the IMU-spike rule, the buzzer default, and the §1.6.1 sign-off.
nrf_firmware is still 44 uncommitted paths with the …4a0f001c UUID collision in it, 43 days after its last commit.
Nothing moved on launch. That's 66 days without a log. The list is still at ~0 with 35 days to GATE-TRAJECTORY. AUG-14 is due in 5 days, and a soak started today ends 11-09.
Hard gate¶
| Gate | Target | Date | Current | Status |
|---|---|---|---|---|
GATE-TRAJECTORY |
600 emails | 2026-11-30 | ~0 | ⬜ 35 days. This is a hook decision, not a launch decision |
GATE-EMAILS |
2,500+ emails | 2027-02-14 | ~0, test subscribers only, last stated 2026-08-10 | 🟡 the instrument works and the list is at zero. The only data point is 77 days old |
GATE-DEPOSITS |
250+ paid reservations | 2027-02-14 | 0, and no mechanism exists | ⚠️ unbuilt, and deposits would be held for nine months |
GATE-CREATOR |
≥1 creator video that outperformed | 2027-02-14 | 0 (1 exploratory email, 2026-08-09) | ⬜ not yet due |
Days to FEB-06 (go/no-go): 103. Days to the campaign: 126. Days to ship: ~312.
~120 emails/week clears GATE-TRAJECTORY, and ~157/week clears GATE-EMAILS. Both numbers go up every week the list stays at zero.
Phase status¶
| Phase | Window | Milestones | Done | Status |
|---|---|---|---|---|
| 1: restart and instrument | 21 Aug – 30 Sep 2026 | 13 | 3 | 🔴 closed on 3 of 13. Nine carried forward overdue, one expired |
| 2: build in public, and actually build | 1 Oct – 30 Nov 2026 | 9 | 0 | 🟡 day 26 of 61. The engineering is moving fast and the "in public" half isn't: nothing published, no blog, no analytics |
| 3: convert | 1 Dec 2026 – 31 Jan 2027 | 6 | 0 | ⬜ not yet due |
| 4: concentrate and pre-launch | 1 – 28 Feb 2027 | 6 | 0 | ⬜ not yet due |
| 5: campaign | 1 – 31 Mar 2027 | 5 | 0 | ⬜ not yet due |
| 6: certify, manufacture, ship | Apr – Sep 2027 | 11 | 0 | ⬜ not yet due |
The three done are still AUG-01 (2026-08-11) and AUG-11 and AUG-13 (both 2026-08-09).
Phase 2 in detail¶
| ID | Milestone | Due | Status |
|---|---|---|---|
OCT-10 |
Draw and order the respin | 2026-11-30 | 🟡 drawn 2026-09-14, built, three v5 boards exist; two now have working WiFi and IMU (#3 since 10-13, #2 since 10-22). Not marked done: Timeline.md calls this the board that gets certified, and v5 has no power-tree parts and no working IR worn sensor. Whether a v6 follows is the ❓ in Todos.md. KiCad has the PCB open with a 10-22 14:05 autosave and no saved change, so there's no evidence of a v6 |
AUG-14 |
Validate Board V1 | 2026-10-31 | ⚠️ half done; the soak is unknown. The claims half was met 2026-09-10. The start-by date (10-17) passed with no trace of a soak on this machine. 5 days left, and a soak takes 14. One started today ends 11-09. Run it with the debugger detached: the watchdog pauses under a halting probe (agent-notes.md 10-24) |
AUG-07 |
First HN: Show HN | October, Tue–Thu 8–10am ET | ⛔ open since 10-01, blocked on SEP-11. The last three Tue–Thu slots in October are this week: 10-27/28/29. With no blog, October is effectively gone |
AUG-09 |
Review analytics; double down on the best hook | 2026-10-31 | ⚠️ no instrument. Blocked on SEP-10 |
NOV-01 |
Build the November review into GATE-TRAJECTORY |
2026-11-15 | ⬜ not yet due |
NOV-02 |
Second HN: the ESP32 → nRF54 power post | November | ⬜ not yet due. Has material: the v4 → v5 link budget (10-05), the two-fault solder diagnosis, "the motor shakes the accelerometer" (10-22), and now "the anchor's clock was nine hours slow" (10-25) |
NOV-03 NOV-04 |
Second YouTube, newsletter pitches | November | ⬜ not yet due |
NOV-05 |
GATE-TRAJECTORY check |
2026-11-30 | ⬜ not yet due |
Carried from Phase 1¶
| ID | Milestone | Due | Status |
|---|---|---|---|
AUG-01 |
Film Sunrise Lock master footage | ✅ 2026-08-11 | ✅ done. The takes still exist in one copy, on a camera |
SEP-10 |
Install site analytics | 2026-08-31 | 🔴 overdue by 56 days |
AUG-02 |
Site + email capture live | 2026-08-31 | 🔴 overdue by 56 days. The UTM acceptance test hasn't been run |
AUG-05 |
Hackaday.io page + first two build logs | 2026-09-07 | 🔴 overdue by 49 days. Not begun |
SEP-11 |
Stand up the blog | 2026-09-07 | 🔴 overdue by 49 days. Gates all four BUD-HN posts |
AUG-06 |
Begin posting, 2/week | from 2026-08-24 | 🔴 day 64, nothing posted |
AUG-04 |
Founder video published | 2026-09-20 | 🔴 missed by 36 days |
AUG-03 |
Kickstarter pre-launch page live | 2026-09-30 | 🔴 overdue by 26 days. The copy is done and the page is not started |
Regulatory¶
| ID | Item | Due | Status |
|---|---|---|---|
SEP-12 |
Scope Fanstel's open BM20C filing | 2026-08-31 | ⛔ expired 2026-09-11 |
SEP-13 |
Open the WM02C change-of-ID conversation | 2026-09-30 | 🔴 overdue by 26 days. Unknown whether it started |
AUG-12 |
Three FCC lab quotes | 2026-09-30 | 🔴 overdue by 26 days. 1 of 3 answered, as of the last record |
The v5 worn detector still can't serve as the lab exhibit. The wornness-gated-WiFi position (BLK-15) needs a worn signal that never calls a wrist "off". v5's IMU detector calls a still wrist "off" after five minutes. The 10-22 alarm masking makes it more accurate during an alarm, and it doesn't change that.
Cadence¶
| ID | Activity | Target | Trailing 4 weeks | Notes |
|---|---|---|---|---|
CAD-POST |
Short-form posts | 2/wk | 0/wk | AUG-06 has been open 64 days |
CAD-FILM |
Sunday batch-film | 8–10 clips/wk | 0 recorded of 4 | 🔴 eleven Sundays, none recorded, 08-16 → 10-25 |
CAD-LOG |
Hackaday.io build log | 1/fortnight | 0 | AUG-05 not begun. 10-05, 10-13, 10-22 and 10-25 are four build logs' worth of material |
CAD-CREATOR |
Creator emails | 10/wk | 0/wk (1 total) | |
CAD-REVIEW |
Friday numbers review | 1/wk | 0 of 4 | Thirteen Fridays without a number, through 10-23 |
CAD-OFF |
Saturday off | 1/wk | unknown |
🔴 CAD-FILM: eleven Sundays in a row with nothing recorded. On Sunday 10-25 the take the plan lacks actually happened on the bench: watch taken off, anchor across the desk beeps, watch back on, beep stops, with you in the room. Nobody filmed it. It was driven by the bench override, so it isn't yet honest footage of a wrist. It is, though, one IMU fix away from being honest.
Budgets¶
| ID | Cap | Spent | Note |
|---|---|---|---|
BUD-HN |
4 across Aug 2026 – Mar 2027 | 0 | The first is AUG-07: due this month and blocked on SEP-11 |
BUD-ADS |
$2,000–5,000 | $0 | |
BUD-TIERS |
6 tiers | within cap |
Metrics¶
| Metric | Value | Trend |
|---|---|---|
| Emails captured | ~0 (test only), last stated 2026-08-10 | one data point, 77 days old |
| Deposits | 0, no mechanism | |
| Clips posted / edited | 0 / 0 | flat |
| Site visits | not measured | SEP-10 is 56 days overdue |
| Live site legal pages | name the sole proprietor | stale for 33 days (index-fqOs4KOK.js as of 10-23; not re-fetched this run) |
| Boards in hand | 5: two V1 (v4), three v5 | v5 #2 and #3 have working WiFi and IMU (#2 since 10-22). #1 only partly recovered |
| Broadcast UDP delivery, this LAN | ~50% (9→5 0x01, 4→2 0x02) |
new 10-22. Unicast: 3/3 each way, 73 ms vs 282 ms round trip |
| §4.6.1 ack, broadcast | acks on attempts 2, 3, 3, 2 | new 10-22. The retries do real work |
| Anchor fallback, decision → DHCP | 3.2 s against a 120 s dwell | new 10-22. Dwell/re-listen measured 120.02 / 30.01 s |
| Worn-detector alarm masking | still clock frozen through a motor pulse; ringdown ~3 s | new 10-22. A fixed 2 s tail measured wrong and was replaced |
| LIS3DH noise floor, still desk | L1 114–153 milli-m/s² | sets WORN_IMU_MOTION_MMS2 = 400 |
| BLE + WiFi both on air | 4 m 40 s, then silent (v5 #3, 10-13) | unchanged; time-divided in firmware |
| CS link, v5 pair at 49 cm, 0 dBm | 0 disconnects / 604 s, 99.9% good | unchanged since 10-05. A GATT discovery + write on the link left CS clean (10-22) |
CS ifft error, v5 |
reads 0.25–0.55 m long | unchanged; no v5 sweep yet |
| nRF host suite | 320 checks, 0 failed (re-run 10-26) | unchanged since the 10-25 overnight |
| nRF firmware commits | 0 since d78517c (2026-09-13) |
44 changed paths uncommitted, unchanged |
| Days without a daily log | 66 | |
| WiFi association, CS out of the build | ~1.5 s | new 10-25. With CS live: status 2 ("wrong password") on a correct passphrase |
| DHCP after association | first exchange never completes, 3 of 3; restart gets a lease in ~0.5 s | 10-25 afternoon. Restart now 5 s: unworn edge → first datagram 8.5 s, edge → ACK 12.7 s |
Watch WATCH_REMOVED over BLE, cold open unworn |
1.9 s, no WiFi | new 10-25, real schedule, real anchor |
| Anchor clock after unpowered time | 9 h 03 min slow (restored_from_flash=1) |
new 10-25. The silent Sunrise Lock |
| IMU still-desk spikes, v5 | single samples 421–1072 mm/s² every few minutes vs threshold 400 | new 10-25. Each restarts the 300 s still clock; board #2 never reached unworn |
| CS release after window end | 70 ms (was up to 5 s) | new 10-25 |
Risks and slippage¶
1. 🔴 The vault archive is downloadable on the LAN right now. (carried, re-verified 10-26) Move the file, then revoke and reissue the Google credential if the network is shared. The durable fix (sync-farm.sh linking only directories and .md) is code and stays with you.
2. 🔴 Seven weeks of nRF work exists in one copy, and it still contains a UUID that shouldn't be pushed as-is. 44 paths in nrf_firmware, 43 days after the last commit. Yesterday added the §6.5 ring, the §4.6.1 right-anchor ACK rule, and the worn diagnostics on top of everything else. The suite passes 320/320. Rename ANCHOR_LAST_IP off …4a0f001c first, then commit and push.
3. 🔴 The anchor forgets the time, and it fails open when it does. (re-graded 10-26: proven on hardware) Its clock is restored after a reset as the last saved value, so time spent unpowered becomes clock error. It was 9 h slow on 10-25. An anchor with the wrong time answers NOT_MINE to a real removal and stays silent. The V1 anchor has no cell, and the v5 one had been resetting (10-24), so this will recur. Nothing is built until you pick a source. The recommendation is an app-pushed time characteristic, which is a four-way GATT change.
4. 🔴 On v5 the watch may never conclude "unworn" on a desk, let alone a wrist. (new 10-26) Isolated IMU spikes restart the 300 s still clock. Board #2 sat 7+ min and stayed worn=1, so its real 14:22 window ran "worn, near, alarming" on a silent image. Whether that's spikes or a failing IMU read on board #2 needs one ./rtt.sh 60. Until then, WATCH_REMOVED is proven only with a forced trigger.
5. 🔴 AUG-14's soak start date has passed. (escalated 10-18) No trace of a soak. Start one today and AUG-14 closes nine days late (11-09), or decide to move it. Run it with the debugger detached. Only a decision you state moves the date.
6. 🔴 The v5 worn detector can't back the SAR argument. (carried) It calls a still wrist "off", and §1.6 makes it the thing that decides when the watch's WiFi transmits. Risk 4 makes that worse in the other direction: today it barely calls anything "off" at all.
7. 🔴 OCT-10 may close on the wrong board. (carried) v5 has no power-tree parts and no working optical worn sensor.
8. 🔴 Phase 2 is publishing through two channels that don't exist. AUG-07 needs the blog (SEP-11), and AUG-09 needs analytics (SEP-10). October's last HN slots are this week.
9. 🔴 SEP-13 is past due, and there's no record it started. (carried)
10. ⚠️ Radio time division is proven in pieces, not soaked. (updated 10-26) The watch policy has now run on hardware against a live anchor, through seven dwell/re-listen cycles. Still missing: any run lasting hours with both roles on the scheme.
11. 🔴 v5 distance still reads 0.25–0.55 m long. (carried) That errs toward under-enforcement, and it's silent.
12. 🔴 AUG-04 is missed, the camera card hasn't been copied, and CAD-FILM has eleven Sundays with nothing recorded. (carried)
13. ⚠️ The live site's legal pages name the wrong party. (carried)
14. ⚠️ Carried and unchanged: the watch ranges the wrong anchor (cs_backend_nrf.c) · SDC assert 23, 587 has no Nordic case · same-edge module placement against FCC Respin.md · phone-distance failure direction disagrees across documents · the FCC record is unconfirmed from a primary source · KiCad is unversioned · phone_sim's b5005c8 has no upstream · the V1 anchor has no cell · charger_detect is dead · GATE-DEPOSITS has no mechanism · the site says "Ships Q1 2027" · BLK-04 · BLK-01 · the nightly run still has no failure notification.
Changes filed elsewhere¶
No log or Todos.md reply was routed. One body of work was verified and committed, and four small edits were made.
A 10-25 afternoon agent session (not this skill, and after yesterday's run) edited three vault files and left them uncommitted. This run checked what it could against the code before committing:
docs/specs/firmware_spec_v3_nrf.md→ v0.23. It adds a §0.5 entry (anchor half proven, the anchor clock 9 h 03 min slow, IMU spikes, the donning-grace poll fix), a new §6.5 (fourteen ring looks, one per enforcement state), and extends v0.22's entry (§4.6.1 ACKs must come from the right anchor, DHCP measured, the hardware verification list). Checked: all fourteen §6.5 looks againstring_looks[]insrc/main.c(colour and blink match row for row),last_delivered_cmdinescalation.h,impulse_udp_last_ack_result()innet_udp.c,NOT_MINEasLOG_WRN(net_udp.c:191), theworn: still clock restartedandworn: IMU read failedlogs inhal/worn.c,DHCP_RESTART_INTERVAL_MS 5000innet_wifi.c,csmock … blockinbringup_shell.c, the buzzer compiled in inbuild-anchor-cswifi-buzz-v5(built 10-25 15:03), andmakeat 320/320. Not checkable here: every hardware observation (the beep, 9 h 03 min, the spikes, the timings).docs/agent-notes.mdgets two new entries, both 10-25: why the Sunrise Lock was silent (both anchor causes, with the one-step diagnostic and the$(date)RTT gotcha), and the first DHCP exchange never completing. Committed as written.Todos.md: the session ticked two sub-steps it did with you present, and added three sub-steps (two❓, one⚠️). Kept as written.
This run's own edits:
firmware_spec_v3_nrf.md§6.2 "Status colours" said the watch ring is solid red / flashing green. v0.23's §6.5 replaces that on the watch, so a one-line pointer now says so. The anchor keeps the two looks. §0.4 chunk F parity row gets a v0.23 sentence: anchor half proven, the clock cause, and what's still open. No version bump, because both edits bring the spec into line with v0.23 rather than changing behaviour.CLAUDE.md(workspace root, unversioned): the nRF bullet said "the anchor half of that join is not proven". That stopped being true on 10-25, and a stale note reads as verified. It now says it was proven, with the bench-override caveat, and keeps both anchor traps. The build block's host-check count went 258 → 320 (verified bymake; yesterday's run declined this edit and flagged it).Todos.md: the overnight block is retitled and gets a 10-26 note: its done when reads as met, so Done is yours to tick. The no-clock⚠️is retitled with the proven cause and relabelledautomatable→needs human help, because the fix changes the GATT contract. The §1.6.1❓notes the policy has now run on hardware. TheWATCH_REMOVEDseam block is retitled: the seam ran, and the trigger is what's left.
Declined, and why¶
- No version bump for the two spec touch-ups. They are consistency edits to v0.23's own content.
- No box ticked. The overnight block's done when looks met, but it was met by an agent session and a bench override, not a log or you.
- No code touched, no UUID renamed,
nrf_firmwarenot committed, no dates moved,OCT-10not marked done,vaultFrozen.zipleft alone.
Repos dirty (re-checked 10-26): nrf_firmware (44), website (22), proximity_engine (5), impulse_app (3), WatchFIrmware (1). AnchorFirmware and phone_sim are clean. No repo outside the vault was dirtied by this run. CLAUDE.md is unversioned.
What the logs don't say¶
No log since 2026-08-21: 66 days. The last six hardware sessions (10-05, 10-12, 10-13, 10-22, 10-24/25 overnight, 10-25 afternoon) are recorded only by agents. Yesterday you were at the bench and heard the beep, and there is still no line from you about it.
- How the anchor should learn the time: (a) app-pushed characteristic, (b) SNTP, or (c) from the watch.
- Which IMU-spike rule you want: two samples in a row, or a higher threshold.
- Whether you agree with §1.6.1, the §4.6.1 ACK, dropping mDNS, the §1.6 radio design and §6.4. All five are agent decisions without your sign-off.
- Whether
IMPULSE_BUZZER_DISABLEDshould keep defaulting toy. - Whether v5 is the board that gets certified.
- Whether
SEP-13,AUG-12orAUG-03moved. None would leave a trace on this machine. - Whether the
AUG-14soak started, on which board, and when. - What
vaultFrozen.zipis for. - Whether you have an EIN yet, and which accounts are still in your personal name.
- Where the footage is.
- How many hours Impulse gets each week, and any email count.
Manual notes¶
Anything written below this line is preserved across /parselogs runs. Use it for context the daily logs don't carry.