Skip to content

threads-uqx.6: daemon integration — classification, delayed-apply scheduler, deadline revalidation, audit in coven.sqlite3 #11

Description

@BunsDev

Bead: threads-uqx.6
Phase: 5 — Approval semantics over the Phase-2 Ward
Spec: specs/PHASE-5-APPROVAL-SEMANTICS.md §1, §4, §6 decisions 1/2/6/8
Depends on: #8 (uqx.3 types), #9 (uqx.4 predicates), #10 (uqx.5 regions), #5 (ward_audit / ApplyAudit)

Scope

Wire the Phase-5 types into the daemon. This is the implementation bead for classification, delayed-apply flow, deadline revalidation, and audit appends. Cave contract amendment is downstream (threads-uqx.7).

Deliverables

  • ProposalClassification assigned at proposal intake (channel, regions, tier floor, ApprovalPath)
  • Delayed-apply scheduler: proposal → pending state; deadline fires revalidation; outcome is approved | vetoed | rejected; deadline expiry triggers replay, never a terminal expired state
  • Revalidation at deadline proves evidence_replay_hash matches (WARD-C7: evidence must survive the time gap)
  • Append-only audit rows in coven.sqlite3 for proposal_submitted, proposal_window_opened, proposal_approved / proposal_vetoed / proposal_rejected — each close event carries explicit reason field
  • Daemon load-time reject if label-variant mapping drifts (no corresponding display label → reject, not warn)
  • Gate-4 fail-closed preserved: every path ends in live daemon re-materialization before apply

Constraints

  • Daemon contract first. Cave ProposalView extension starts as [DESIGNED, NOT SHIPPED] until this bead has release evidence (decision 6).
  • No provisional apply. Pending state is visible; daemon applies only after window closes with no veto. Rollback is not in scope (decision 2).
  • min_visible on VetoWindow must be enforced: deadline cannot close before the pending proposal was visible for at least that duration.
  • All audit appended here must interop with the ApplyAudit schema from issue ward_audit: add an apply-audit event type so the coven daemon can persist Gate-4 apply records #5.

Does not include

  • Cave contract amendment (threads-uqx.7)
  • Nova sign-off (threads-uqx.9) — that bead reviews this one's output

Delivery reconciliation (2026-09-09)

The historical scheduler foundation merged through OpenCoven/coven#430 as f6fc7099db75d338cfc3f05512561c7483321ef9; threads-uqx.6 is closed for that delivered slice. Coven release v0.4.3 includes that merge in its ancestry.

This GitHub issue remains open for reviewed integration and full acceptance, not because the runtime seams are still absent. Draft OpenCoven/coven#972 (e139023f) implements supported scheduled publication, and draft OpenCoven/coven#968 (8a4f2b7) supplies isolated deterministic daemon time. Integrated draft OpenCoven/coven#931 (345d4cf0) exercises actual canonical migration/intake, minimum visibility, deadline, restart, unsupported corpus input, all five terminal families, and supersession idempotency. Its full hosted run 34396479737 passed, including the 15-test Unix daemon target.

Current acceptance checkpoint (2026-09-10)

OpenCoven/coven#978 (native Windows/shared-client parity) and
OpenCoven/coven#979 (final validated-authority commit binding) are now merged
into the shared draft OpenCoven/coven#931, not Coven main. Its published
head is fd610f6.

The combined fixture executes the final-commit identity-drift journey.
At committed 42f5e71, with current Threads
16ad832c44d7247823122af263c7e86aff880d01 proven through Cargo metadata, all
15 real-daemon journeys pass default-parallel. The recurrent macOS startup
failure was reproduced and repaired: discovery had retained a removed
temporary socket hard-link alias. The published leaf is now retained without
weakening ownership, permissions, symlink rejection, or peer identity.
Independent bounded review of the integrated authority changes found no
significant introduced correctness issues.

Integrated native Windows journeys now execute successfully in run
34461979876: 15 passed, none ignored or filtered, with 23 passed scenario
manifests including final-commit identity drift. The actual synthetic merge
is 6daed594ffb36eea681adce0da090adaef48f812; Windows used committed Threads
c3bd46b, not the separate current-checkout local override.

Overall CI remains red on two Windows adoption-lane workspace channel
timeouts, coordinated with OpenCoven/coven#855. The separate earlier
prompt-delivery timeout has diagnostic draft OpenCoven/coven#993 under
OpenCoven/coven#992. Feature journeys now execute independently of workspace
failure without hiding either result. This is combined-head evidence, not a
transfer of earlier component green.

Keep OpenCoven/coven#977, OpenCoven/coven#976, and this issue open for reviewed
integration/acceptance. The required reviewed pin and governance remain in
#31; real-browser acceptance is tracked in OpenCoven/coven-cave#5256.
Existing owner issues OpenCoven/coven#884, OpenCoven/coven#885,
OpenCoven/coven#886, and OpenCoven/coven#888 remain the canonical daemon lanes,
not missing implementations to duplicate.

The valid close vocabulary is applied, vetoed, evidence_diverged, revalidation_failed, or superseded. Neither this reconciliation nor a draft implementation satisfies #13 or the Val freeze gate.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions