diff --git a/CLOUD-RUN-SUMMARY.md b/CLOUD-RUN-SUMMARY.md new file mode 100644 index 0000000..c9d11a9 --- /dev/null +++ b/CLOUD-RUN-SUMMARY.md @@ -0,0 +1,73 @@ +# Cloud-Run Summary + +## Run metadata + +| Field | Value | +|-------|-------| +| Branch | `chore/cloud-improvements-2026-04-29` | +| Start | 2026-04-29T07:55:53Z | +| End | 2026-04-29T08:20:00Z | +| Elapsed | ~24 minutes | +| Rounds completed | 13 rounds (15 items; 2 rounds batched adjacent changes) | +| Rounds budget | 40 | +| Stop reason | Backlog drained | + +## Totals + +- **Total items**: 15 (12 planned minimum — exceeded) +- **Completed**: 15 +- **Blocked**: 0 +- **Engineering rounds**: 5 items (batched into 4 commits) +- **UI rounds**: 5 items +- **Feature rounds**: 5 items (batched into 4 commits) + +## Per-theme tally + +| Theme | Planned | Completed | Blocked | +|-------|---------|-----------|---------| +| engineering | 5 | 5 | 0 | +| ui | 5 | 5 | 0 | +| feature | 5 | 5 | 0 | + +## Completed items + +| ID | Theme | Title | Commit | Files | +|----|-------|-------|--------|-------| +| ENG-01 | engineering | Type-tighten PluginSettings.backend to union literal | f9c5ca0 | src/types.ts, src/settings.ts, src/settings-tab.ts | +| ENG-02 | engineering | Fix copyToClipboard to use i18n copyFailed key | a20d94c | src/ui-helpers.ts | +| ENG-03 | engineering | Fix addIconButton/addTextButton catch blocks to use actionFailed key | a20d94c | src/ui-helpers.ts | +| ENG-04 | engineering | Add parseCardsJson edge-case tests | 9f9e96a | src/test-exports.ts, tests/schema.test.js | +| ENG-05 | engineering | Fix normalizeCardsPayload hardcoded Chinese fallback title | 18e156a | src/schema.ts, src/i18n-strings.ts, tests/schema.test.js | +| UI-01 | ui | Fix a11y: associate labels to inputs in CardEditModal | 7045d82 | src/modal.ts | +| UI-02 | ui | Fix hardcoded Cancel/OK in confirmRegenerateEditedCards | 187c0d1 | src/modal.ts, main.ts | +| UI-03 | ui | Add missing CLI timeout setting to settings tab UI | f4f3a33 | src/settings-tab.ts, src/i18n-strings.ts | +| UI-04 | ui | Add missing Max output tokens description | 69f255b | src/i18n-strings.ts, src/settings-tab.ts | +| UI-05 | ui | Fix hardcoded 'chars' counter in streaming preview | 06a4165 | src/view.ts, src/i18n-strings.ts | +| FEAT-01 | feature | Guard exportToVault when sections list is empty | 803e646 | src/view.ts | +| FEAT-02 | feature | Add Alt+E keyboard shortcut to edit active card | 597a658 | src/view.ts | +| FEAT-03 | feature | Fix promptForBatchFolder hardcoded OK button | d810396 | src/batch.ts, main.ts | +| FEAT-04 | feature | Add Alt+Delete keyboard shortcut to delete active card | 597a658 | src/view.ts | +| FEAT-05 | feature | Change default promptLanguage from zh to auto | 12906bd | src/settings.ts, tests/direct-prompt.test.js | + +## Blocked items + +None. All 15 items completed without verification failures. + +## Baseline vs final + +| Check | Baseline | Final | +|-------|----------|-------| +| lint | GREEN (59 files, 0 errors) | GREEN (59 files, 0 errors) | +| typecheck | GREEN | GREEN | +| test | GREEN (24 files) | GREEN (24 files) | +| e2e gate | N/A (.e2e/ absent) | N/A (.e2e/ absent) | + +## NEXT STEPS + +- **Add `isFileInBatchFolder` recursive mode**: Current batch only processes direct children of a folder; a `recursive` option would let users batch entire folder trees with one command. +- **Add keyboard shortcut help overlay**: Alt+E/Alt+Delete/Alt+Arrow shortcuts are not discoverable without documentation; a `?` key binding to show a shortcuts help modal would improve UX. +- **Wire `noTitle` key into `confirmRegenerateEditedCards` title display**: The modal title currently uses `displayName`; a more specific title per-file would make the confirmation clearer. +- **Add `cliTimeoutMs` normalization in `normalizeSettings`**: The new CLI timeout setting has no bounds normalization in `normalizeSettings` (unlike `streamingTimeoutMs`), so extreme values aren't clamped on load. +- **Improve streaming progress UX**: The streaming counter shows raw character count; showing estimated token count or a progress bar would give users a better sense of generation completion. +- **Add integration tests for `CardEditModal`**: The modal is only covered via visual inspection; unit tests for `createLabeledInput`/`createLabeledTextarea` id/for linkage would prevent a11y regressions. +- **Audit remaining hardcoded English strings**: Checked ui-helpers, modal, batch — other components (e.g., `settings-tab.ts` inline placeholders) may still have English-only strings not covered by the i18n system.