Wave-1 review gate: validation coverage fixes (unschedule, handle-level consumer-local entry points), ADR-008 §4 annotations (whitespace-exclusion, class scope), task check-line staleness fix (ADR-008/009/021, core-contract)

This commit is contained in:
glm-5.3-flash committed 2026-10-07 16:15:48 +00:00
1 parent 621415cc47
commit 8b03960e39
10 files changed
+196 -38

No files matched your search

+4 -1
View File
@@ -544,7 +544,10 @@ by [ADR-009](decisions/009-scheduler-collapse.md) §1):
- Reserved-prefix names are rejected at every entry point — the
name-bearing methods *and their `*_tx` counterparts* — with the
typed `ReservedName` error; empty names with `InvalidName`
([ADR-008](decisions/008-contract-v1-pinning.md) §4). Stream-consumer
([ADR-008](decisions/008-contract-v1-pinning.md) §4 — enforced as
non-empty-after-whitespace-exclusion per that ADR's wave-1 review
annotation: whitespace-only names are `InvalidName` on both name
classes; names are not trimmed). Stream-consumer
names are consumer-local identifiers, not a reserved-namespace kind.
- Engine-derived names in consumer namespaces carry the reserved
prefix (the outbox's backing queue is derived under the prefix —
@@ -247,9 +247,19 @@ struct Wake { channel: String }
only** — an empty stream-consumer name or empty `try_lock` owner is
`InvalidName`, mirroring `worker_id`'s rule
([ADR-019](019-mechanism-handle-surfaces.md) §2) — with no
reserved-prefix rejection (they are not a shared namespace, so a
leading `__alkstore_` is the caller's own local name, no engine
namespace to collide with).)*
reserved-prefix rejection (they are not a shared namespace, so a
leading `__alkstore_` is the caller's own local name, no engine
namespace to collide with). *(Annotated 2026-10-07, wave-1 review:
the stream-consumer-name class covers every method's consumer-name
argument — `save_offset(_tx)`, `subscribe`, `get_offset(_tx)`,
`read_from_consumer(_tx)`, the receiver forms — the class is by
identifier role, not per-method enumeration. The non-empty rule is
enforced as **non-empty after whitespace exclusion** — a
whitespace-only name (`" "`, `"\t\n"`) is `InvalidName` on both
name classes, never a meaningful name on any engine; names are not
trimmed — the caller's name is stored as given, engine quoting is
the engine's obligation. Pre-release class-1 annotations per
[ADR-017](017-contract-versioning.md) §2.)*
- Per-engine internal names:
- SQLite: honker's machinery owns two categories of internal names,
and the contract treats them differently. Its `_honker_*` *table*