David F Glidden
32b0c9dfc6
[FIX] The link canary was blind to code spans, to wikilinks, and to its own class
...
The steward's 2026-08-09 to-do read "the gap is neither knowledge nor home but
the absence of an EXECUTABLE." The premise was false: classify_pointers has
existed since 19bddd5 (2026-08-08), wired to SessionStart, with controls. The
gap was that the executable was incomplete, and the incompleteness had already
produced a false positive.
Four defects, three named in the spec and one found by building it:
1. CODE SPANS. `](file.md)` inside backticks read as a pointer, so the single
DEAD pointer reported on 2026-08-09 was the link pattern written inside
MEMORY.md's own specification of this canary. An instrument that flags its
own documentation flags it every wake forever, and the real signal drowns —
the same "known canary bug" dismissal the 2026-07-28 block was written to
end, arriving by a second route. Fences and inline spans are blanked with
offsets preserved; inline spans may not cross a newline and an unterminated
fence does not match, so a stray backtick can never blank the file and HIDE
dead pointers.
2. WIKILINKS. reference-verification-ladder.md has specified this canary as
covering "every `](file.md)` and `[[wikilink]]`" since 2026-07-06. Only the
first half was ever built. 31 wikilinks now checked.
3. BREAKAGE AGE, derived from git rather than a stored prior run — a state file
would make this the one cached section in a digest whose governing property
is that it is computed. Where git cannot answer, it says so.
4. Found by running it: the first wikilink pass reported only UNWRITTEN, and
both live hits were [[trust-prior-pass-frame]], whose file EXISTS as
feedback-trust-prior-pass-frame.md. That is precisely the one-word alarm the
comment ten lines above it was written to forbid. Wikilinks now report three
outcomes and hand back the replacement slug. Both are repaired here.
The wake-up skill and the ladder now POINT AT the executable instead of
describing the check — the described-not-invoked gap is why it kept being
retyped by hand on 2026-08-08 and 2026-08-09.
Verify: python3 scripts/wake-digest.py --selftest (61 checks, exit 0)
python3 scripts/wake-digest.py | grep 'MEMORY POINTERS'
Induced red: blank_code reverted to a no-op (behaviour, not the symbol) →
exit 2, five named failures, no traceback; direction controls held.
Not changed: the wrap_inside detector, which announced "PREVIOUS SESSION DID
NOT WRAP" for a session that wrapped at 19:48 and kept working until 21:54 —
a two-valued detector over a three-case state. Named in the ledger, not fixed.
2026-08-10 16:01:51 +02:00
..
2026-04-17 13:51:04 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-25 09:22:36 +02:00
2026-07-31 22:19:48 +02:00
2026-07-28 13:44:17 +02:00
2026-06-29 23:29:15 +02:00
2026-07-13 15:42:13 +02:00
2026-06-06 09:52:17 +02:00
2026-07-14 10:15:12 +02:00
2026-07-17 00:55:12 +02:00
2026-06-06 09:52:17 +02:00
2026-07-06 21:54:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-14 20:50:41 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-27 19:35:17 +02:00
2026-06-28 22:11:10 +02:00
2026-06-06 09:52:17 +02:00
2026-07-19 23:07:09 +02:00
2026-08-08 19:15:14 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-28 22:11:10 +02:00
2026-06-06 09:52:17 +02:00
2026-08-08 13:09:37 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-08-03 08:57:42 +02:00
2026-07-24 10:51:19 +02:00
2026-06-27 22:41:58 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-13 15:42:13 +02:00
2026-06-06 09:52:17 +02:00
2026-06-15 18:41:38 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-16 17:52:36 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-18 15:51:07 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-12 12:15:15 +02:00
2026-06-06 09:52:17 +02:00
2026-07-07 17:42:40 +02:00
2026-08-09 21:27:53 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-08-10 16:01:51 +02:00
2026-08-09 21:50:50 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-25 22:57:15 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-11 18:06:36 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-08 18:51:47 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-08-07 17:22:29 +02:00
2026-07-28 13:30:51 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-08-06 16:56:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-19 23:07:09 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-07 20:49:46 +02:00
2026-07-08 22:50:20 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-29 23:29:15 +02:00
2026-07-24 10:51:19 +02:00
2026-06-06 09:52:17 +02:00
2026-07-08 22:50:20 +02:00
2026-06-06 09:52:17 +02:00
2026-06-18 18:01:22 +02:00
2026-08-08 13:01:26 +02:00
2026-07-24 11:19:44 +02:00
2026-06-06 09:52:17 +02:00
2026-08-06 16:56:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-31 21:49:35 +02:00
2026-07-28 14:10:03 +02:00
2026-06-15 18:41:38 +02:00
2026-06-06 09:52:17 +02:00
2026-08-10 16:01:51 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-07-12 21:06:40 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-07 07:03:20 +02:00
2026-06-07 07:03:20 +02:00
2026-06-07 11:02:37 +02:00
2026-06-07 21:07:43 +02:00
2026-06-07 19:11:38 +02:00
2026-06-08 14:24:15 +02:00
2026-06-08 18:51:47 +02:00
2026-06-09 13:19:24 +02:00
2026-06-09 21:16:20 +02:00
2026-06-10 23:48:58 +02:00
2026-06-11 18:44:18 +02:00
2026-06-12 12:58:08 +02:00
2026-06-12 22:15:06 +02:00
2026-06-13 16:20:17 +02:00
2026-06-13 10:23:39 +02:00
2026-06-15 18:41:38 +02:00
2026-06-16 21:44:56 +02:00
2026-06-16 17:52:36 +02:00
2026-06-17 18:41:19 +02:00
2026-06-18 12:13:42 +02:00
2026-06-18 18:01:22 +02:00
2026-06-22 23:35:30 +02:00
2026-06-23 22:35:16 +02:00
2026-06-25 22:57:15 +02:00
2026-06-26 23:51:29 +02:00
2026-06-27 22:41:58 +02:00
2026-06-28 22:11:10 +02:00
2026-06-29 23:29:15 +02:00
2026-06-30 14:46:08 +02:00
2026-06-30 21:41:34 +02:00
2026-07-02 09:31:49 +02:00
2026-07-02 17:06:10 +02:00
2026-07-02 23:22:58 +02:00
2026-07-03 10:47:23 +02:00
2026-07-04 22:52:45 +02:00
2026-07-04 11:13:20 +02:00
2026-07-04 23:31:05 +02:00
2026-07-06 10:24:44 +02:00
2026-07-07 11:53:31 +02:00
2026-07-06 21:54:17 +02:00
2026-07-06 13:13:53 +02:00
2026-07-06 15:48:57 +02:00
2026-07-07 22:29:51 +02:00
2026-07-07 17:42:40 +02:00
2026-07-08 22:50:20 +02:00
2026-07-09 23:38:21 +02:00
2026-07-09 17:12:32 +02:00
2026-07-10 15:33:43 +02:00
2026-07-11 01:22:36 +02:00
2026-07-12 12:15:15 +02:00
2026-07-12 21:15:46 +02:00
2026-07-12 08:09:44 +02:00
2026-07-13 17:53:44 +02:00
2026-07-13 19:05:17 +02:00
2026-07-13 15:42:13 +02:00
2026-07-14 20:50:41 +02:00
2026-07-14 10:15:12 +02:00
2026-07-17 00:57:36 +02:00
2026-07-17 16:11:58 +02:00
2026-07-17 21:52:46 +02:00
2026-07-18 15:51:07 +02:00
2026-07-18 17:27:09 +02:00
2026-07-18 19:03:23 +02:00
2026-07-18 20:43:30 +02:00
2026-07-19 12:50:54 +02:00
2026-07-19 14:40:54 +02:00
2026-07-19 17:16:46 +02:00
2026-07-19 23:07:09 +02:00
2026-07-19 18:41:34 +02:00
2026-07-20 21:13:05 +02:00
2026-07-21 11:23:07 +02:00
2026-07-22 14:38:00 +02:00
2026-07-23 21:39:27 +02:00
2026-07-24 13:09:42 +02:00
2026-07-24 10:51:19 +02:00
2026-07-24 14:50:37 +02:00
2026-07-24 16:40:02 +02:00
2026-07-24 11:19:44 +02:00
2026-07-24 19:50:34 +02:00
2026-07-25 10:05:51 +02:00
2026-07-27 19:35:17 +02:00
2026-07-27 22:14:25 +02:00
2026-07-28 11:40:48 +02:00
2026-07-28 13:31:20 +02:00
2026-07-28 15:21:47 +02:00
2026-07-28 09:45:44 +02:00
2026-07-31 22:24:16 +02:00
2026-08-02 10:36:59 +02:00
2026-08-03 08:57:42 +02:00
2026-08-02 16:31:42 +02:00
2026-08-02 12:28:24 +02:00
2026-08-03 21:28:16 +02:00
2026-08-04 18:05:10 +02:00
2026-08-04 15:30:56 +02:00
2026-08-05 23:04:52 +02:00
2026-08-05 22:19:41 +02:00
2026-08-07 17:22:29 +02:00
2026-08-06 16:56:17 +02:00
2026-08-07 19:09:46 +02:00
2026-08-07 22:30:41 +02:00
2026-08-07 18:11:16 +02:00
2026-08-08 21:39:22 +02:00
2026-08-08 15:11:29 +02:00
2026-08-08 13:09:37 +02:00
2026-08-09 21:50:50 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-07 07:03:20 +02:00
2026-06-07 19:11:38 +02:00
2026-06-08 18:51:47 +02:00
2026-06-09 21:16:20 +02:00
2026-06-10 23:48:58 +02:00
2026-06-11 18:44:18 +02:00
2026-06-12 12:58:08 +02:00
2026-06-13 10:23:39 +02:00
2026-06-15 18:41:38 +02:00
2026-06-16 21:44:56 +02:00
2026-06-17 18:41:19 +02:00
2026-06-18 12:13:42 +02:00
2026-06-22 23:35:30 +02:00
2026-06-23 22:35:16 +02:00
2026-06-25 22:57:15 +02:00
2026-06-26 23:51:29 +02:00
2026-06-27 22:41:58 +02:00
2026-06-28 22:11:10 +02:00
2026-06-29 23:29:15 +02:00
2026-06-30 21:41:34 +02:00
2026-07-02 00:05:37 +02:00
2026-07-02 23:22:58 +02:00
2026-07-04 11:13:20 +02:00
2026-07-04 23:31:05 +02:00
2026-07-05 22:41:29 +02:00
2026-07-07 11:43:25 +02:00
2026-07-07 22:29:51 +02:00
2026-07-08 22:50:20 +02:00
2026-07-09 23:38:21 +02:00
2026-07-11 01:22:36 +02:00
2026-07-12 08:09:44 +02:00
2026-07-12 21:06:40 +02:00
2026-07-14 10:15:12 +02:00
2026-07-14 20:50:41 +02:00
2026-07-17 00:55:12 +02:00
2026-07-17 21:52:46 +02:00
2026-07-19 12:50:54 +02:00
2026-07-19 23:07:09 +02:00
2026-07-21 11:23:07 +02:00
2026-07-22 14:38:00 +02:00
2026-07-23 21:26:48 +02:00
2026-07-24 19:50:34 +02:00
2026-07-27 19:30:09 +02:00
2026-07-27 22:14:25 +02:00
2026-07-28 15:22:39 +02:00
2026-07-31 22:24:16 +02:00
2026-08-01 17:46:29 +02:00
2026-08-03 08:57:42 +02:00
2026-08-03 20:57:41 +02:00
2026-08-04 17:10:40 +02:00
2026-08-05 23:04:52 +02:00
2026-08-06 19:45:51 +02:00
2026-08-07 22:30:41 +02:00
2026-08-08 18:15:20 +02:00
2026-08-09 21:27:53 +02:00
2026-08-10 16:01:51 +02:00
2026-08-01 17:57:57 +02:00
2026-08-08 13:06:59 +02:00
2026-08-09 21:27:53 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-18 18:01:22 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00
2026-06-06 09:52:17 +02:00