Repository navigation
Description
What and why
Route builder and moderator authority through the session frames. Today the install and revoke frames do not carry a builder or moderator actor. Phase 12 (PR #801, F12.3) added the BUILDER/MODERATOR scope bits, invite --role builder|moderator, and the journal-only audit entries BuilderInstalled and Revoked { by }. But every caller passes by: None, so in practice a builder cannot install and a moderator cannot revoke over the wire, and the audit entries never appear. PR #801 lists "F12.3 install/revoke frame wiring" as remaining, and no issue tracks it.
Source
- Phase 14 plan: F14.6 (PR docs(id): Phase 14 plan — close-out: finish, measure, verify, open the gates #834)
- Phase 12 plan: F12.3
- PR id: Phase 12 — world doctor + world.toml manifest (F12.16, F12.1) #801 body, "Remaining Phase 12": "F12.3 install/revoke frame wiring"
- Epic id: Phase 12 designs to run through the research workflow #534, D1-021
Current status
Partial. pkgs/id/src/world/handle.rs:489 (revoke → revoke_by(participant_id, None)) and :648 (install_program → install_program_by(..., None, ...)) are the only callers of the _by variants outside tests. world/actor.rs:1192-1195 journals BuilderInstalled only when an actor is passed. The session code in world_session/ never passes one.
Acceptance criteria
- The install-module frame accepts a participant holding
BUILDERand passes the actor toinstall_program_by - The revoke frame accepts a participant holding
MODERATORand passes the actor torevoke_by - Over a real session (not the handle API), a builder installs, a moderator revokes, and a plain guest is refused for both with the documented F11.13 code
- Each use is journaled with its actor (
BuilderInstalled,Revoked { by }) - Builder still receives no network, file, or process authority (test)
Size
M
Prerequisites
- Define rollback compatibility for world profile journal entries #227: F11.12 journal format version (Phase 14 F14.1).
BuilderInstalledis a new entry type, and it must be covered by the version contract before it is produced in practice.
Activity
docs(id): Phase 14 plan — link F14.6 to #835 and the plan PR #834
dezren39 commentedon Oct 26, 2026
Intake review
Still live: verified on current main (a2eef6f) —
pkgs/id/src/world/handle.rs:489still callsrevoke_by(participant_id, None)and:648still callsinstall_program_by(..., None, ...); the session code inworld_session/passes no actor. The issue already carries a full acceptance-criteria section, so this pass only normalized labels — body untouched.Related: PR #801 (F12.3, merged — lists this wiring as remaining), #534 (epic), #227 (F11.12 journal-format prerequisite named in the issue —
BuilderInstalledis a new journal entry type).Notes / risks: gated on #227 in practice: producing
BuilderInstalledentries before the journal version contract covers them would create the format problem #227 exists to prevent. Sequence accordingly.Suggested approach: wire the actor through the two session frames once #227's contract covers the entry types; the over-a-real-session test in the criteria is the right verification shape.
🤖 Fleet monitor intake enrichment — labels normalized and
meta/enrichedapplied this pass (acceptance criteria already present).dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
266 remaining items
dezren39 commentedon Nov 4, 2026
agent-note:v1
state: parked
queue: repo-health-code-pilot
task: 4858 (small_fix, worker repo-worker-code, lane 8ac61616-3815-4e7b-b33d-840a3829154a)
by: openchamber-scheduled-lane
at: 2026-11-04T02:18:30Z
Parked 30 minutes because task-bound PR #4535 remains OPEN and the issue's current ownership notes identify it as Drew-authored/open draft. This lane did not inspect the PR, change code, or create competing work. Resume only after #4535 closes/merges or ownership is explicitly reassigned, then revalidate #835 and design gate #3826.
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
opencodedezren39 commentedon Nov 4, 2026
🤖 Agent note · picked up
1a180ae5-384f-4e71-8d77-08f7b1652c75(OpenChamber scheduled lane)dezren39 commentedon Nov 4, 2026
🤖 Agent note · parked
1a180ae5-384f-4e71-8d77-08f7b1652c75(OpenChamber scheduled lane)dezren39), ate33a4e4a3ee701563b6eea9ddae6fd1ac63ac48c. This is a hard-stop ownership restriction; no diff inspected and no work touched. Design gate PR design(id): #835 builder and moderator session frames #3826 is already merged./home/user/git/fleet/4858is preserved.dezren39 commentedon Nov 4, 2026
agent-note:v1
{"kind":"handoff","task":4858,"lane":"code-v","execution_lane":"opencode","state":"parked","note":"task 4858 handed off to opencode claimant by lane code-v. Fresh revalidation: issue #835 OPEN; task-bound PR #4535 OPEN/DRAFT at e33a4e4, authored by Drew (dezren39) — ownership hard stop, PR/branch untouched, no competing work. Prior implementation preserved on branch queue/4858-835-session-authority. Resume only after PR #4535 closes/merges or Drew releases ownership."}
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off