From 52b08cc70f62d9eb9680fc3bb2445c10206d2aa9 Mon Sep 17 00:00:00 2001 From: monthop-gmail Date: Sun, 16 Aug 2026 16:02:37 +0700 Subject: [PATCH] Point the observer comments at the doc's current name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four comments in overseer.ts cite observers-implementation-plan.md, but that file is checked in as docs/observers.md, so following the reference finds nothing. Retarget them, matching how blueprint-archive.ts cites docs/blueprints.md. Every cited section still exists under the new name: §3 "Concepts & terminology", and §5 "Step 3", "Step 5" and "Step 6". Comments only; no code changes. Co-Authored-By: Claude Opus 5 (1M context) --- packages/workshop-backend/src/overseer.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/workshop-backend/src/overseer.ts b/packages/workshop-backend/src/overseer.ts index e5fed5bb2..adb2a2ba4 100644 --- a/packages/workshop-backend/src/overseer.ts +++ b/packages/workshop-backend/src/overseer.ts @@ -394,7 +394,7 @@ function oneLineReason(reason: string): string { // and passed all `addObserver` checks -- i.e. is actually set up to observe data the Gadget has // read. This is distinct from the sharing table (which records the owner's *intent* that a user // have access): opening requires BOTH a reachable role in the sharing graph AND a complete -// observer record. See observers-implementation-plan.md §3. +// observer record. See docs/observers.md §3. type ObserverRecord = { // The sharing-table key for this user (their profile.id). Primary key of the collection. profileId: string; @@ -2758,7 +2758,7 @@ class OverseerImpl implements AgentHooks { // v1 has no per-thread hiding, the only way to let such an observation proceed is if the named // observer has already lost access in the sharing graph. If any named observer is still // authorized, we cannot prevent them from seeing it, so we block the observation. See - // observers-implementation-plan.md §5 Step 5. + // docs/observers.md §5 Step 5. if (description.excludeObservers && description.excludeObservers.length > 0) { await this.#enforceExcludeObservers(description.excludeObservers); } @@ -6043,7 +6043,7 @@ class OverseerImpl implements AgentHooks { // observer record: best-effort removeObserver on all gatekeeper facets, then delete the record. // All calls are best-effort -- an orphaned observer entry only causes superfluous future checks, // never a data leak (the leak-relevant gate is authorizeObservation, keyed off the live sharing - // graph). See observers-implementation-plan.md §5 Step 6. + // graph). See docs/observers.md §5 Step 6. async tearDownLostObservers(affected: AffectedCollaborator[]): Promise { let gatekeeperIds = [...this.storage.gatekeepers.list()].map(gk => gk.id); for (let entry of affected) { @@ -6089,7 +6089,7 @@ class OverseerImpl implements AgentHooks { // already-configured bindings on every open, catching revocation of the user's underlying // resource access promptly. Returns when fully verified; throws to deny access. // - // See observers-implementation-plan.md §5 Step 3. + // See docs/observers.md §5 Step 3. async ensureObserver( profileId: string, clientUser: DurableObjectStub,