Skip to content

feat: file association UX (UTI + vync open .) (#12)#13

Merged
PresenceWith merged 14 commits intomainfrom
develop
Mar 12, 2026
Merged

feat: file association UX (UTI + vync open .) (#12)#13
PresenceWith merged 14 commits intomainfrom
develop

Conversation

@PresenceWith
Copy link
Copy Markdown
Owner

  • feat(desktop): register UTI for .vync file type

Add UTExportedTypeDeclarations (com.vync.canvas) to electron-builder config so macOS properly recognizes .vync as a known file type. This ensures double-click file association works reliably after DMG install.

  • feat(cli): add vync open . for directory discovery

vync open without args or with "." now discovers .vync files in the current directory (CWD + CWD/.vync/, 1 level deep, ignoring node_modules/.git). Single file opens directly; multiple files show a numbered selection prompt with "a" for all.

  • docs: add file association UX roadmap (P2/P3) to FUTURE.md

Document deferred items: first-run dialog for default app setup (P2) and custom .vync file icon (P3).


PresenceWith and others added 14 commits March 12, 2026 13:52
overflow-x: auto on .vync-tab-bar forced overflow-y: auto per CSS spec,
clipping the absolutely positioned dropdown. Split into .vync-tab-scroll
(overflow-x: auto) and keep .vync-tab-add outside the scroll container.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scans allowedDirs and their .vync/ subdirectories for unregistered
.vync files. Returns up to 100 discovered file paths. Enables the
frontend '+' button to show files available for opening.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
App fetches GET /api/files/discover on '+' click, passes results
to TabBar. Dropdown shows 'Reopen' (closed tabs) and 'Open'
(unregistered .vync files) sections. Uses handleAddFile with
server-validated path for reliable tab creation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…point

- ARCHITECTURE.md: add GET /api/files/discover to API endpoint table
- DECISIONS.md: fix D-015/D-016 doc paths (plans/ → archive/)
- CLAUDE.md: update multi-tab UI description for two-section dropdown

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove docs/archive/*, completed docs/plans/*, and examples/ that are
no longer needed. Add docs/archive/ to .gitignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change `app.get('*', ...)` to `app.get('*path', ...)` to fix
"Missing parameter name at index 1" error with path-to-regexp v8.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 'showHiddenFiles' property so .vync files in dot-prefixed
directories are visible when opening via the file chooser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Without flex:1, the scroll container only takes the width of its
tab contents, placing the "+" button immediately after the last tab.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update all subagent_type references from "vync-translator" to
"vync:vync-translator" to match marketplace naming convention.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CLAUDE.md: add Electron bundle sync instructions
- ARCHITECTURE.md: add diff pipeline section, file discovery endpoint,
  EADDRINUSE recovery flow, code signing note
- PLAN.md: add post-MVP sections (diff pipeline, server lifecycle,
  code signing, tab bar fix)
- FUTURE.md: fix relative link path
- WRAP.md: add post-MVP phase naming convention
- Add tab-add-button fix plan document

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(desktop): register UTI for .vync file type

Add UTExportedTypeDeclarations (com.vync.canvas) to electron-builder
config so macOS properly recognizes .vync as a known file type. This
ensures double-click file association works reliably after DMG install.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(cli): add vync open . for directory discovery

vync open without args or with "." now discovers .vync files in the
current directory (CWD + CWD/.vync/, 1 level deep, ignoring
node_modules/.git). Single file opens directly; multiple files show
a numbered selection prompt with "a" for all.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add file association UX roadmap (P2/P3) to FUTURE.md

Document deferred items: first-run dialog for default app setup (P2)
and custom .vync file icon (P3).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- fix(ui): tab bar dropdown clipping + left-aligned "+" button
- feat(server): GET /api/files/discover endpoint
- feat(ui): file discovery connected to tab bar dropdown
- fix(server): Express 5 named path parameter
- fix(electron): show hidden files in file open dialog
- fix(plugin): fully qualified vync-translator subagent type
- chore: clean up archived docs, completed plans, and examples
- docs: update architecture, decisions, CLAUDE.md for discovery
- Move completed plan docs to docs/archive/ (server-lifecycle, diff-pipeline)
- Add document package transition plan (docs/plans/2026-03-12)
- Update FUTURE.md with document package section (§6, 미결정)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@PresenceWith PresenceWith merged commit 6559aa4 into main Mar 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant