Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/workshop-backend/src/overseer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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<void> {
let gatekeeperIds = [...this.storage.gatekeepers.list()].map(gk => gk.id);
for (let entry of affected) {
Expand Down Expand Up @@ -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<UserDurableObject>,
Expand Down
Loading