• feat(provider): mark_superseded verb — Worldtree #364 contradiction retirement + bifrost 1.1.4

    vh released this 2026-07-16 22:37:31 -07:00 | 104 commits to main since this release

    Implement mark_superseded(ids, *, superseded_by=None, reason=None) — the SOLE
    supersession verb Worldtree #364's promotion-hygiene reconciliation calls to retire
    contradicted facts (wire shape confirmed by worldtree-dev, bifrost_memory_store.py:293).
    Live re-verify (2026-07-16) proved our provider 500-crashed on this call (unimplemented)
    → #364's retirement couldn't land + a retry-storm bloated the store; the readout only
    passed via transient recency-eviction.

    • mark_superseded mirrors the reference _mark_lifecycle: sets top-level
      superseded=True (+ superseded_by/superseded_reason when non-None), increments
      revision, NON-destructive (get still returns; recoverable). Unknown ids skipped.
    • _is_live (INV-011) now short-circuits on superseded is True, so a retired chunk is
      excluded from scan (person-prime) — durable retirement, not just recency-eviction.
      search is unfiltered (matches reference; WT re-checks liveness client-side).
    • Contract: un-defer mark_superseded (+ FN spec, INV-011); TDD 5/5 (retires-from-scan
      tracer, non-destructive-get, unknown-id no-op, non-None-fields-only, parity #195).
    • bifrost 1.1.1→1.1.4: hasattr-gate backstop for the maintenance verbs (unimplemented
      verb → unsupported_capability 400, never AttributeError/500/retry-storm — the gap we
      surfaced) + the 1.1.3 scan/cursor conformance harness. Full suite 644 green.
    Downloads