v2.3 #12

Merged
xavier merged 9 commits from dev into main 2026-08-31 22:32:52 +02:00
Owner
No description provided.
v2.3 scope spec'd: per-prefix-row Add-folder action (never navigates),
background cancellable enumeration with early abort, count-before-confirm
with skip accounting, refusal-never-truncation on either cap, grouped
staging entries, SQL_QUERY_LIMIT_NUMBER_FILES (default 500, no warn tier)
gating entry controls and picker commit; load-time oversize demoted to
drift backstop. sql-query + deployment-config + selection-model +
ui-shell + GLOSSARY + README amended.

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
Shared schema gains the required count-cap field (default 500); proxy parses SQL_QUERY_LIMIT_NUMBER_FILES via parsePositiveInt (malformed boot fails with ConfigParseError naming the var; redact-harness canary added per the standing rule); web DEFAULT_CONFIG mirrors the default. TopBar SQL control and BucketPage action-bar button gate on the compatible-count cap with over-cap tooltip/title arms naming the cap (chrome.topbar.sqlOverCapTooltip, browser.actions.openInSqlTitleOverCap, fr-FR mirrored), plus widened click-handler guards with jsdom click-through pins. Mechanical sweep of ConfigResponse literals across test files.

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
source-picker-model gains StagedFolderGroup + the pure commitGate classifier (strict > on both axes, groups summed by children not totalSize, both-caps tie-break = count); the picker scratchpad splits into stagedFiles + stagedGroups, the Add commit disables while the gate refuses with the violated cap named, commit flattens with bucket+'/'+key defensive dedup, and the dirty-close seam counts groups. SourcePickerSizeIndicator gains the two-state count axis (no count warn tier). sql.folder.* family started (staged summary, commit titles, confirm body) + sql.picker.count.* arms, fr-FR mirrored. 17 new test rows across model/component/registry suites; live visual loop run against a lowered-cap MinIO stack.

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
folder-add-model.ts pure reducer (marker exclusion, compatible filter, held/staged/grouped skip accounting, mid-page early abort on both caps with count winning ties, ready/refused/empty/nothing-new classification); use-folder-add.ts scan lifecycle (one scan at a time, per-scan AbortController, token-guarded continuations, cancel/retry/confirm, auto-cancel on unmount); SourcePickerFolderFlow inline footer-slot flow (enumerating/preview/refused/empty/error rows, no nested modal); folder rows gain a sibling Add-folder button that never navigates; covered file rows render static staged-via-folder; group chips removable whole; three-level Escape cascade (flow -> dirty-close confirm -> close). 21 sql.folder.* descriptors mirrored in fr-FR (dead ICU zero arms dropped pre-commit). 45 new test rows (30 pure + 15 component incl. Escape-during-scan composition and preview-replacement pins).

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
Seven new real-browser specs covering sql-query.md criteria 382-403 verbatim: never-navigating Add-folder action, background enumeration with cancellable count-before-confirm preview, grouped staging removable whole with commit flatten to key-path aliases (real query returns rows) and held-not-refetched, over-cap refusal with early-abort lower-bound numbers inside the picker, route-aborted enumeration failure with successful Retry, zero-children folder, and the >500-selection entry-gate disable on both controls (501 tiny CSVs vs the default cap - 300ms fixture; no new compose infrastructure).

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
v2.3 close-out: README knob row + plan status finalization
All checks were successful
CI / pnpm gate (typecheck, lint, build, test) (push) Successful in 1m45s
release / build + scan + publish (push) Successful in 49s
CI / pnpm gate (typecheck, lint, build, test) (pull_request) Successful in 1m43s
6f663fa766
README operator table gains the SQL_QUERY_LIMIT_NUMBER_FILES row (default 500, /config exposure, entry-gate + picker-commit + folder-add-refusal consumers). v2.3.md: all tasks completed, gate outcomes recorded (3012 unit tests, integration 7/7, E2E 73/0/5-skip), zero spec/ADR conflicts, docs close-out noted. The plan file stays until the post-tag deletion commit per the lifecycle rule.

Co-Authored-By: Xavier's assistant <assistant@gijoe88.com>
xavier merged commit 6f663fa766 into main 2026-08-31 22:32:52 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
xavier/s3-vedrfolnir!12
No description provided.