Workspaces: add persistent notes widget#101829
Conversation
|
On the |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Dependency graph guard clearedThis PR no longer has blocked dependency graph changes. A future dependency graph change requires a fresh
|
|
Codex review: needs real behavior proof before merge. Reviewed July 13, 2026, 8:55 AM ET / 12:55 UTC. Summary PR surface: Source +672, Tests +647, Docs +6. Total +1325 across 23 files. Reproducibility: yes. for the remaining defect at source level: on the unchanged reviewed head, mounted notes hydrate through a cached state accessor without an evidenced broadcast-driven rehydration path. The feature itself is a new capability rather than a current-main bug report. Review metrics: 2 noteworthy metrics.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Approve and land the widget-state contract separately, then rebase this PR to a notes-only consumer that refreshes safely on broadcasts, includes generated locales, and demonstrates the full workflow in a real browser. Do we have a high-confidence way to reproduce the issue? Yes for the remaining defect at source level: on the unchanged reviewed head, mounted notes hydrate through a cached state accessor without an evidenced broadcast-driven rehydration path. The feature itself is a new capability rather than a current-main bug report. Is this the best way to solve the issue? No, not in its current cumulative form. Optimistic concurrency and parent-bound identity are strong primitives, but the maintainable path is an accepted persistence base followed by a notes-only PR with broadcast refresh, locale synchronization, and live proof. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0d1573e9a2cc. Label changesLabel justifications:
Evidence reviewedPR surface: Source +672, Tests +647, Docs +6. Total +1325 across 23 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (14 earlier review cycles; latest 8 shown)
|
|
Fixed the P1 file-binding contract issue flagged here. The @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
73180ee to
df76cdd
Compare
2bb670a to
ee58f50
Compare
ee58f50 to
ed69acd
Compare
What Problem This Solves
Workspaces had persistent per-widget state after #101329, but no trusted built-in editor that used the contract safely. The legacy Notes implementation targeted the removed dashboard stack and could overwrite edits during hydration or write without a loaded concurrency version.
Why This Change Was Made
This stacked rebuild adds
builtin:notesto the current Workspaces registry and consumes the recovered widget-state contract through a trusted per-widget accessor. Every save uses optimistic concurrency, missing versions never degrade to unguarded writes, early edits queue until hydration completes, and conflicts surface visibly. Debounced writes are canceled on disconnect/unmount; reconnect retries hydration without performing network work while unmounted.User Impact
Workspace users can keep persistent notes inside a widget without losing early input to a late load. Concurrent edits are detected instead of silently overwritten, read-only/offline views cannot mutate state, and transient hydration failures can recover after reconnect.
Generated locale synchronization remains intentionally separate: four new English keys require authenticated translation sync for the repository's 20 generated locales. No generated locale was hand-edited or filled with fallback-only output.
Evidence
843e3c787806389cdaac884300e671fba658dab6during the final recovery pass; the Notes commit range-diffs identically and its companion differs only in current-main import context.oxfmtandoxlint: clean.main.git diff --check: clean.pnpm ui:i18n:checkreports 12 pending keys across 20 generated locales: four introduced here plus eight already present on the frozen main snapshot. Authenticated translation sync remains required; no fallback-only locale output was committed.