You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CONTRACT: feat(storage): deliver the complete Settings inspection and removal pane - #2151
Storage is the eighth Settings pane after Modules, with the complete inspection, selection, fresh review, removal, result and retained Undo journey. It exposes separate filesystem capacities, ownership views, a keyboard-accessible map and equivalent paged list, strict PDF size filtering, exact inspected versions, reference uncertainty, approved maintenance and durable per-file outcomes. The default Settings pane and main destinations are unchanged.
This draft targets the removal branch in #2139 to expose only its presentation changes. Delivery waits for #2061, #2138 and #2139 to land, then this branch will be reconstructed onto their actual main commits and receive full candidate proof. It is not a native-stack merge request.
Why this shape
The approved Storage design requires the initial public pane to include safe removal. ui-kit owns the prop-driven map; ui-react owns the root-scoped transport and interaction lifetime. Browsing uses the read-only inspection endpoint, while confirmation always requires a new durable version-bound review. Lost responses read the original receipt, and account/root replacement discards selections and late responses. Unknown allocation never becomes file size or map area; shared capacities and object aliases do not gain duplicate area. New observations are adopted explicitly so an asynchronous refresh cannot reorder a focused selection.
Proof
Pinned Chromium: 39 browser tests passed across Storage interaction, Settings navigation and real HTTP journeys. Tests cover dark/paper at 320/1280, 200% zoom, 44px targets, accessible names and WCAG checks, greyscale captures, three-level keyboard drill-down, 205-entry paging, root/account replacement, cancellation, stale review, mixed outcomes and lost replies.
Real mounted routes remove a 5.1 MB attachment, lose the confirmation response after the effect, read the original receipt without reposting, and restore the exact original bytes at both widths. A changed source survives confirmation. The native fixture is the explicit copied-input broker; it is not Btrfs host qualification.
Eight independent browser mutations fail at named assertions: strict PDF threshold, capacity deduplication, unknown allocation, alias area, ineligible selection, changed-review confirmation, root lifetime and lost-response repost. Restoring the code passes all checks. The invalid-filter regression also failed first at STORAGE_INVALID_FILTER_HAS_NO_OLD_ROWS, then passed after the prior result was cleared.
Eight interactive stories pass in both configured themes, including removal and Undo. Phone/desktop overview, phone review/result, zoom and greyscale captures were inspected and retained. Screenshots support visual judgment; runtime assertions establish the effects.
Full build, public API reports and TypeScript pass. Changeset package references and the complete pending changeset plan validate. bun run check:pr --base origin/main passes 864 tests / 5,541 assertions; moved citations are repaired.
Selected hosted proof remains pending on the eventual main-based candidate. Local receipts are not presented as hosted checks.
Checklist
Complete selected hosted proof and actual head/base/checkout evidence recorded.
Initial pane includes the complete approved journey and user documentation.
PR and issue assigned release milestone 0.44.0; read back again before merge.
Minor changeset covers ui-react and ui-kit.
Package contracts, API reports and moved citations updated.
Local leakage and focused preflight gates passed.
Anything left open
Parent delivery, the main-based candidate review and selected hosted proof. Growth history, pressure guidance, the persistent indicator and Critical Web Push remain in #2058/#2059 under the approved #2014 policy. Existing owner preflight decides whether an operation has enough headroom; this pane does not promise reclaimed bytes or erase Git/journal history.
schlessera
added
type: feat
A new capability or a change in user-visible behaviour.
area: ui-react
React chat/files/voice components, stores, WebSocket transport.
area: ui-kit
The presentational design kit: components, tokens, Storybook, visual baselines.
contract
Touches the integration contract: CONTRACT: commit, contract doc updated in the same commit.
labels
Oct 16, 2026
Delivered through combined PR #2172, squash caae12da2e678dd4720bf112e93ef21812cfdc18 on main. The actual squash parent/tree matches the fully confirmed candidate; all 17 selected ready-PR jobs passed, and the automatic main-push result is recorded below. Release milestone 0.44.0 is retained.
This draft's reviewed head 4c4094c1c8969a33193b101c6051b489b7404aa3 contributes the same patches already included in the combined candidate: 8d2ed932b5443212f6b9a9bf4d87581c6806b6ab, 9fb15e865ce470fd4c905c2223a350f82bd57d1f, 4c4094c1c8969a33193b101c6051b489b7404aa3. The six draft heads were re-read before reconciliation and remained unchanged.
Automatic main-push CI 39302987919, attempt 1 is not green. Its unit (1) job 118233088097 failed the Claude provider-history fixture with ENOENT while reading /proc/self/fd/17/maintenance.lock, matching the existing fixture-maintenance race in #2405. The Storage delivery issues remain open pending the remaining main qualification. The passing PR confirmation and actual merged tree remain recorded separately from this failed main run.
Closing this overlapping draft as superseded because its contributions are already present on main through #2172. Main qualification remains incomplete as recorded above. This PR is closed, not independently merged; its branch and historical review/test receipts are preserved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
area: ui-kitThe presentational design kit: components, tokens, Storybook, visual baselines.area: ui-reactReact chat/files/voice components, stores, WebSocket transport.contractTouches the integration contract: CONTRACT: commit, contract doc updated in the same commit.type: featA new capability or a change in user-visible behaviour.
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2013
What changed
Storage is the eighth Settings pane after Modules, with the complete inspection, selection, fresh review, removal, result and retained Undo journey. It exposes separate filesystem capacities, ownership views, a keyboard-accessible map and equivalent paged list, strict PDF size filtering, exact inspected versions, reference uncertainty, approved maintenance and durable per-file outcomes. The default Settings pane and main destinations are unchanged.
This draft targets the removal branch in #2139 to expose only its presentation changes. Delivery waits for #2061, #2138 and #2139 to land, then this branch will be reconstructed onto their actual main commits and receive full candidate proof. It is not a native-stack merge request.
Why this shape
The approved Storage design requires the initial public pane to include safe removal. ui-kit owns the prop-driven map; ui-react owns the root-scoped transport and interaction lifetime. Browsing uses the read-only inspection endpoint, while confirmation always requires a new durable version-bound review. Lost responses read the original receipt, and account/root replacement discards selections and late responses. Unknown allocation never becomes file size or map area; shared capacities and object aliases do not gain duplicate area. New observations are adopted explicitly so an asynchronous refresh cannot reorder a focused selection.
Proof
STORAGE_INVALID_FILTER_HAS_NO_OLD_ROWS, then passed after the prior result was cleared.bun run check:pr --base origin/mainpasses 864 tests / 5,541 assertions; moved citations are repaired.Selected hosted proof remains pending on the eventual main-based candidate. Local receipts are not presented as hosted checks.
Checklist
Anything left open
Parent delivery, the main-based candidate review and selected hosted proof. Growth history, pressure guidance, the persistent indicator and Critical Web Push remain in #2058/#2059 under the approved #2014 policy. Existing owner preflight decides whether an operation has enough headroom; this pane does not promise reclaimed bytes or erase Git/journal history.