mirivlad
6d15639b41
fix: normalize bare URLs in capture flow
2026-06-05 12:29:19 +08:00
mirivlad
22b05f57b4
fix: show inbox capture target context
2026-06-05 08:10:33 +08:00
mirivlad
a8df9d118c
fix: hide explorer action for inbox links
2026-06-05 08:07:39 +08:00
mirivlad
91b5629e01
fix: open inbox artifacts by type
2026-06-05 08:06:06 +08:00
mirivlad
0e5d13ff01
fix: ignore global hotkeys in editable fields
2026-06-05 07:47:07 +08:00
mirivlad
f112e9a2d0
feat: add local inbox and links tabs
2026-06-05 07:44:38 +08:00
mirivlad
c1dfc456ec
feat: unify frontend capture pipeline
2026-06-05 07:41:15 +08:00
mirivlad
6eaa4cda49
feat: assign and delete inbox artifacts
2026-06-05 02:15:27 +08:00
mirivlad
a96a316883
feat: capture files and images in inbox
2026-06-05 02:06:21 +08:00
mirivlad
326f6f283d
feat: capture clipboard links in inbox gui
2026-06-05 01:55:38 +08:00
mirivlad
d6ef3a973a
feat: model inbox capture artifacts
2026-06-05 01:40:08 +08:00
mirivlad
2e86229350
fix: restrict inbox to captured artifacts
2026-06-05 01:35:27 +08:00
mirivlad
58a74acbf6
test: capture inbox and trash gui smoke
2026-06-05 01:07:51 +08:00
mirivlad
cc83cd3476
feat: expose trash in gui
2026-06-05 01:05:57 +08:00
mirivlad
035f877280
feat: add interactive inbox view
2026-06-05 00:59:57 +08:00
mirivlad
02d68ca3f4
feat: edit suggestions before accepting worklog
2026-06-05 00:53:13 +08:00
mirivlad
eb6a861310
feat: edit and delete worklog entries
2026-06-05 00:48:12 +08:00
mirivlad
644ec0ed00
test: cover sync conflict warnings
2026-06-04 19:48:02 +08:00
mirivlad
2284f893f8
test: exercise gui smoke actions
2026-06-04 19:39:27 +08:00
mirivlad
767c03ba8c
test: add rendered gui smoke harness
2026-06-04 18:59:07 +08:00
mirivlad
20e605bab7
chore: add gui smoke check
2026-06-04 07:49:34 +08:00
mirivlad
7641a311cc
build: clean embedded assets before copy
2026-06-04 03:50:38 +08:00
mirivlad
b6a3a2238d
fix: tab highlight reactivity, cleanup docs and build scripts
...
- Fix tab highlight not updating visually — switch from class={tabClass()}
to Svelte's class:active directive for proper reactive class binding
- Rewrite README.md with full project structure, architecture, build guide
- Rewrite build.sh to build both GUI and server, output to build/
- Add scripts/build.sh for granular builds (gui/server/all)
- Add build/, frontend-dist/, and test vault dirs to .gitignore
- Remove stale binaries from project root
- Update AGENTS.md session summary
2026-06-03 05:08:58 +08:00
mirivlad
4f01f2de2e
fix: complete vault layout transition — fs_path everywhere, no more spaces/
...
- notes.Create(): .md files stored in parent node's fs_path folder
- files.CopyIntoVault/CreateEmptyFile/Duplicate: use parent fs_path
- files.AddPathCopy/AddPathLink: use parent fs_path, set folder fs_path
- files.DeleteNodeAndChildren: move physical folder to .verstak/trash
- UpdateFsPathRecursive: use SafeDisplayNameToPathSegment(child.Title)
- sync_apply.go note ops: use fs_path instead of spaces/
- internal/gui/server.go file upload: use n.FsPath instead of nodeSlug
- VaultCheck diagnostic: walk nodes/files, verify paths on disk
- Tests: create/rename/move/delete/name-conflict/vault-check all pass
2026-06-02 15:43:40 +08:00
mirivlad
0b26f7e5b3
refactor: implement template-driven node tree and human-readable vault layout
...
Unified Node model: added template_id, fs_path, archived, sort_order fields.
Template registry: system templates embedded as JSON (folder/project/client/
document/recipe), with Registry for enabled/disabled/filtered access.
SafeDisplayNameToPathSegment: human-readable path segments with Cyrillic
support, illegal char replacement, uniqueness via numeric suffixes.
Sidebar refactored: system views (Today/Inbox/Activity) separate from
workspace tree. Creation menu built dynamically from enabled templates.
Create/Rename/Move: physical folder operations with fs_path update,
recursive descendant path updates.
DB migration 012: adds template_id, fs_path, archived columns.
Vault migration command: rebuilds fs_path for existing nodes.
Tests: safename, registry, node model, repository integration.
Docs: VAULT_LAYOUT.md, TEMPLATES.md, PLAN.md updated.
i18n: nav.system, nav.workspace, template.*, common.rename/archive,
migrate.* keys added to ru.json and en.json.
2026-06-02 12:47:06 +08:00
mirivlad
12f2916a24
followup: SafeVaultPath in note update, email i18n, strict check-i18n.sh
...
- applyRemoteNoteUpdate: use SafeVaultPath for vault mode, skip non-vault with log
- Email subjects/bodies moved to Go i18n (confirm + reset) in ru.json and en.json
- check-i18n.sh: ru/en key mismatch now FAIL (not WARNING)
- All builds, tests, frontend pass
2026-06-02 11:40:27 +08:00
mirivlad
7091397649
server i18n: move inline HTML to templates.go, localize all handler strings
...
- Admin & user dashboard HTML moved from handlers to templates.go with i18n.T()
- SafeVaultPath applied in sync_apply.go (note/file create/update, blob restore)
- DeleteNode/RenameNode/MoveNode fixed: correct activity type / entity variant
- Added TypeNoteDeleted, TypeNodeDeleted, TypeFolderMoved activity constants
- Added locale() helper on Server struct, removed hardcoded 'ru' in handlers
- Password policy loosened: 8-256 chars, any characters, machine-readable error codes
- check-i18n.sh: Go Cyrillic = FAIL with explicit exception list, Go locale key consistency check
2026-06-02 11:26:54 +08:00
mirivlad
3089d777a8
refactor(gui): разделить app.go на binding-файлы по доменам, вынести sync apply
...
- app.go (1810→280 строк): только App struct, startup, DTOs, helpers
- bindings_{nodes,files,notes,actions,worklog,activity,sync,settings}.go
- sync_apply.go: все applyRemote* методы
- i18n: internal/i18n (Go, embed JSON) + frontend/src/lib/i18n (JS)
- core/sync/safe_path.go: SafeVaultPath
- scripts/check-i18n.sh: проверка хардкода кириллицы и bidi-символов
- build.sh: NVM loading, set -e
Все сборки (CLI, server, gui, frontend), go vet, go test проходят.
2026-06-02 10:47:38 +08:00