Skip to content

feat(glass): File locks — seventh Basement room (P5) - #115

Merged
EmergentKnowledgeGroup merged 4 commits into
mainfrom
codex/glass-office-p5-file-locks
Jul 26, 2026
Merged

feat(glass): File locks — seventh Basement room (P5)#115
EmergentKnowledgeGroup merged 4 commits into
mainfrom
codex/glass-office-p5-file-locks

Conversation

@EmergentKnowledgeGroup

@EmergentKnowledgeGroup EmergentKnowledgeGroup commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

Rehomes the advisory-lease machinery as the stable locks room — the seventh Basement room — per the P5 slice plan. No new controller, lease store, fetch loop, or backend concept: Directory / Front Desk keeps Front Desk and Direct Mail, Chatrooms keeps its reserve/release consumers, and File locks becomes the authoritative landing for the existing machinery.

  • Stable room locks on the shared mail route (BF · File locks, block locks): lights exactly one lamp, lands locks -> leases while directory still lands Front Desk; internal Mail choices survive unrelated rerenders; leave-and-return follows the newest explicit stable room; only the matching room renders its pin.
  • Controller lease truth inside the one useAgentMailController: explicit leasesLoading/leasesLoaded/leasesError + request-generation identity; stale principal/settings/auth responses refused; auth loss clears sensitive lease facts; a lease outage no longer erases Direct Mail/Agent-room reads (and vice versa); refreshLeases retry seam; synchronous same-tick locks for create, per-lease release, and room-workspace reserve — in the controller, not UI state.
  • Honest surface: cooperative-advisory copy with an explicit no-filesystem-enforcement statement; holder / shared-vs-exclusive / TTL / note / expiry from the server; never-loaded vs loading vs error-with-retry vs loaded-empty distinguished; count claimed only when loaded; release stays one confirmation stating the consequence.
  • Hidden locks Office block via the shared pin primitive; twelfth-shortcut proofs with every earlier shortcut through memory genuinely present (24/24 cells), byte-for-byte config immutability on refusal, honest repeat, zero lease/Mail/routing/memory/ExecAss mutations around pinning.
  • Fidelity/defect fixes: mock gateway now enforces the production holder_principal lease filter (trimmed, blank-ignored); the reserve modal's Exclusive checkbox no longer clips at the modal edge at 390px (.mc-modal .mc-field-grid stacks at phone width, guarded by child-geometry assertions).
  • Hostile-QA correction: lease facts are now bound immediately to authentication, gateway, and acting-principal identity before the replacement read''s debounce; same-identity refresh preserves pagination, while a failed refresh cannot keep rendering last-known rows as live. Browser failure proof counts the one injected GET at request, response, and console boundaries, and screenshots retain real product help chrome. The follow-up head changes only the PR web wrapper's core-E2E timeout from 600s to 900s after CI passed 42/43 scenarios and terminated the runner at exactly 600.0s; required coverage is unchanged.

Validation (local product proof at ade5516; CI budget-only head 25a1e92)

npm run typecheck                          PASS
npm run lint                               PASS
npm run test:unit -- --run                 PASS  659/659 (75 files; mounted lease identity/race, MailPage seam/honesty, twelfth-shortcut, and room identity coverage)
npm run build                              PASS
npm run test:e2e:core                      PASS  43/43 (5.3m), incl. new p5-locks (19.3s) and the directory (26.8s), memory (22.8s), breakers (15.2s) anchors
cargo run -q -p carsinos-protocol --bin generate_execass_contract -- --check   PASS
python scripts/validate_execass_contract.py                                    PASS
git diff --check                           PASS

Browser proof captures console.error, pageerror, requestfailed, and ≥400 responses with an empty final budget; the one injected lease-500 is excluded by a URL-scoped allowance asserted to have fired exactly once. Eleven screenshot artifacts under runtime/qa/p5-locks-slice/ (locks-room/facts/error/full-canvas-refusal/pinned/office-shortcut/disabled-door/restored-door desktop; room/modal/office-door 390) were enumerated and visually inspected — that inspection caught the 390px Exclusive-checkbox clip before it shipped.

🤖 Generated with Claude Code

EmergentKnowledgeGroup and others added 2 commits July 25, 2026 18:18
Stable room `locks` shares the mail route with Directory / Front Desk but
owns its own lamp, `locks -> leases` landing, hidden Office block, and pin.
The one Agent Mail controller gains explicit lease read truth
(loading/loaded/error + request generation): stale principal/settings/auth
responses are refused, auth loss clears lease facts, a lease outage no
longer erases Direct Mail/Agent-room reads, and create/release/reserve get
synchronous same-tick locks in the controller instead of UI state. The
lease surface states cooperative advisory truth (no filesystem enforcement
claim), shows holder/shared-vs-exclusive/TTL/note/expiry, and
distinguishes never-loaded, loading, error-with-retry, and loaded-empty.

Proof: 22-test mounted lease suite (written red-first), MailPage room-seam
and honesty tests, twelfth-shortcut byte-immutability unit proofs, and a
desktop+390 e2e slice with exact reserve/release bodies, acting principal,
live 8->7->6 pagination against server truth, injected lease-500 error
with a counted narrow allowance, config-only pinning, disabled/restored
door, reload persistence, and FL-mark/child-geometry containment. Also
fixes mock lease holder_principal filter fidelity and a real 390px defect
where the reserve modal's Exclusive checkbox clipped at the modal edge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 2 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2aa0d970-30a0-4974-8a55-705c4e392394

📥 Commits

Reviewing files that changed from the base of the PR and between 92f0b20 and 25a1e92.

📒 Files selected for processing (14)
  • apps/mission-control/e2e/mockGateway.mjs
  • apps/mission-control/e2e/p5-locks-slice.spec.ts
  • apps/mission-control/quality-gate.config.json
  • apps/mission-control/src/app/AppContent.tsx
  • apps/mission-control/src/app/useAppController.test.tsx
  • apps/mission-control/src/features/agentMail/MailPage.test.tsx
  • apps/mission-control/src/features/agentMail/MailPage.tsx
  • apps/mission-control/src/features/agentMail/useAgentMailController.leases.test.tsx
  • apps/mission-control/src/features/agentMail/useAgentMailController.ts
  • apps/mission-control/src/features/execassOffice/officeBlocks.ts
  • apps/mission-control/src/features/execassOffice/pinToOffice.test.ts
  • apps/mission-control/src/glass/floors.ts
  • apps/mission-control/src/styles.css
  • docs/plans/2026-07-23-glass-office-claude-resume.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/glass-office-p5-file-locks

Comment @coderabbitai help to get the list of available commands.

@EmergentKnowledgeGroup
EmergentKnowledgeGroup merged commit 3b4d594 into main Jul 26, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant