Skip to content

id: F12.17 trust and provenance — module signatures against an admin trust list #1069

Closed

Description

@dezren39

F12.17 — Trust and provenance

From the Phase 12 plan (.opencode/plans/phase-12-platform-flexibility.md, workstream G):

Verify module signatures against an admin trust list, extend the observed provenance (#225) with a compiler version, and record the trust decision in the journal. This is trust, not only observation.

Exit: an unsigned module is refused when the trust list is non-empty.

Coordination (2026-10-26 reprioritization, per Drew): every id roadmap item now has its own GitHub issue, and priority encodes the order: (1) the path to Phase 12 — now + priority/high; (2) Phase 12 itself — next; (3) Phase 13 and long-term ideas — priority/low. The dashboard mirrors this list (org Project "Developing Today" #4, Area id-train; Grist Program roadmap, Area id). If this item turns out to be blocked, wrong, or superseded, park or close it with a note rather than letting it stall the queue — dropping an issue is always allowed; silently stalling is not.

Acceptance criteria

  • An unsigned module is refused when the admin trust list is non-empty, demonstrated by a test.
  • Observed provenance (feat(id): record world module build provenance #225) is extended with a compiler version.
  • The trust decision is recorded in the journal.
  • Tests cover the empty-trust-list case (no refusal) as well as the non-empty case.

Activity

  1. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  2. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    nextOrg Project gate: queued next — orchestrator adds to the board
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    on Oct 27, 2026
  3. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: Provenance base: #225 · Phase 12 plan workstream G (.opencode/plans/phase-12-platform-flexibility.md)

    Notes: F12.17, Phase 12 (next band in Drew's reprioritization). The body's Exit line is the core criterion; the acceptance list above adds the empty-list guard case so the refusal can't over-fire. Still live — filed 2026-10-27, no implementation PR exists yet.

    Risks: Trust enforcement that refuses in the wrong cases would brick module loading; the empty-list case is the safety valve and needs its own test.

    Suggested approach: Start from #225's provenance record shape; add signature verification at module load, journal the decision at the same point.

    Labels were already normalized by the filer (kind, source/human, status/needs-triage, priority, effort, app/id all present); this pass appended the acceptance criteria above and adds meta/enriched.

    🤖 Agent note · filed

    • Agent: fleet monitor
    • Session / ID: repo-fleet-monitor run 2026-10-26 22:19 CDT
    • Found via: monitor reconciliation (intake enrichment, protocol §5)
    • Task: Intake review — verified still live (filed this evening as part of Drew's roadmap/validation batch; no merged PR or commit resolves it), appended acceptance criteria, posted this review.
    • Expectation: done when the acceptance criteria above are met (effort class as labelled by the filer).
  4. added
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 27, 2026
  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane E
    • Session / ID: queue task 2349
    • Found via: queue claim
    • Task: Triage verdict for id: F12.17 trust and provenance — module signatures against an admin trust list #1069 — CONFIRMED not implemented; implementation enqueued as a follow-up packet.
    • Expectation: The follow-up implements the trust-list gate end to end (or splits it on this issue per the coordination note rather than stalling); this issue stays open, queue/queued.
    • Links: parent plan: Phase 12 workstream G (named in the issue)

    Triage verdict — CONFIRMED, not implemented at current main

    Verified 2026-11-01 against origin/main = efc4e182:

    • Observed provenance exists (observation only). pkgs/id/src/commands/world.rs:609 surfaces active_module_provenance; cli.rs:2063 reads a world's provenance from its journal (the feat(id): record world module build provenance #225 lineage). Nothing extends it with a compiler version.
    • No admin trust list and no module signature check. Repo-wide in pkgs/id/src: "trust" hits are access control (access.rs trusted keys), envelope payload signatures, and the invite trust anchor; "admin" hits are the world-admin token (guest capability minting) and group admins. Neither concept gates module loading.
    • Modules are wasm (sandbox.rs, commands/world.rs) and are activated without any signature-vs-list verification — the F12.17 exit ("an unsigned module is refused when the trust list is non-empty") has no code behind it, and no trust decision is journaled.

    Route

    Enqueued a follow-up packet (kind small_fix, medium risk): trust list + signature verification at module activation (refuse unsigned/untrusted when non-empty; unchanged behavior when empty), compiler version in module provenance, journal-recorded trust decisions, and tests for the empty / unsigned-refused / trusted-accepted cases. The packet notes this is the full effort/l slice and instructs a split on this issue over a stall if it outgrows one timebox.

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    work/assignedQueue worker lifecycle state
    and removed on Nov 1, 2026
  7. 179 remaining items

  8. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 2, 2026
  9. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 6097 (repo-health-code-pilot, repo-worker-code; OpenChamber scheduled lane; session ses_e5e643a149effez7y048t7YbXQ)
    state: Queue task 6097 parked for 30 minutes. Fresh metadata-only check confirms issue #1069 OPEN and authored/assigned to Drewry Pope (dezren39), and named PR #4263 OPEN and authored by the same owner. This ownership hard stop remains. No PR content, checks, reviews, branch, or worktree inspected; no changes made.
    resume: Only after explicit ownership release or handoff; revalidate issue/PR and restrictions before any work.

  10. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 2, 2026
  11. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up (resume) — ownership park corrected, merging

  12. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done — all acceptance criteria landed

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/onlineFully doable remotely: design, config, code, cloudnextOrg Project gate: queued next — orchestrator adds to the boardpriority/normalOrdinary priority (the default)source/humanFiled directly by a human

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions