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
* feat(store): folders list with legacy baseDir migration
* fix(store): explicit empty folders is authoritative; copy on read
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(scanner): scanFolders merges roots + direct repos, dedups by path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(scanner): parallelize scanFolders to match walk's Promise.all
* feat(guard): isAllowedPath pure guard over folder list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(projects): scan() takes no base, deck spans multiple folders
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(ipc): folders handlers, scanFolders for list/usage, isAllowedPath guard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(ipc): validate added folder exists; snapshot folders in open loop
- settings:addFolder now stat-checks the path and rejects non-existent
paths or plain files before storing, preventing garbage/non-directory
paths from widening the security allow-set.
- projects:open hoists effFolders() to a single call before the loop
instead of re-evaluating it on every iteration.
- effBaseDir comment clarifies it is legacy/back-compat only.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(ipc): expose folders methods to the renderer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* i18n: scan-locations list strings (ko/en/ja/zh)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(renderer): scan-locations folder list with add/remove
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* polish(renderer): use Folder type, nowrap kind label, drop dead set.browse key
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* polish(ipc): error message reflects folder allow-set, not single base dir
* test(guard): use OS-native paths in pathGuard test so it passes on POSIX CI
Hardcoded Windows paths (C:\work) made resolve()/sep behave differently on
ubuntu/macOS, failing the under-root assertion. Build paths via node:path so
the test exercises the platform's real separator semantics.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Si Hyeong Lee <writingdeveloper@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: src/renderer/locales/en.json
+5-2Lines changed: 5 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -48,8 +48,11 @@
48
48
"usage.col_project": "Project",
49
49
"usage.col_cost": "Est. cost",
50
50
"usage.disclaimer": "* Some models have no price card — excluded from cost. Cost is a public-rate API-equivalent estimate and may differ from your (subscription) bill.",
0 commit comments