docs: update roadmap status from current code

This commit is contained in:
mirivlad 2026-06-04 03:47:31 +08:00
parent bb0bb608e3
commit 3a20e1b093
6 changed files with 66 additions and 43 deletions

View File

@ -13,14 +13,20 @@
`verstak-server` — простой Go HTTP server. `verstak-server` — простой Go HTTP server.
Функции: Реализовано в коде:
- API key auth; - user auth + device registry;
- device registry; - device token / API key auth;
- operation log; - operation log;
- blob storage by sha256; - blob storage by sha256;
- snapshots; - push/pull operation exchange;
- blob upload/download;
- web pages for login/register/dashboard/admin.
Ещё не реализовано:
- restore manifest; - restore manifest;
- snapshots;
- deleted item retention. - deleted item retention.
Пример server storage: Пример server storage:
@ -42,9 +48,10 @@ GET /api/v1/health
POST /api/v1/device/register POST /api/v1/device/register
POST /api/v1/sync/push POST /api/v1/sync/push
POST /api/v1/sync/pull POST /api/v1/sync/pull
POST /api/v1/blobs/upload POST /api/v1/blobs/
GET /api/v1/blobs/{sha256} GET /api/v1/blobs/{sha256}
GET /api/v1/restore/manifest POST /api/v1/auth/register
POST /api/v1/auth/login
``` ```
Auth: Auth:
@ -60,8 +67,7 @@ Client push:
```json ```json
{ {
"device_id": "device-uuid", "device_id": "device-uuid",
"ops": [], "ops": []
"blobs": ["sha256..."]
} }
``` ```
@ -69,8 +75,9 @@ Server response:
```json ```json
{ {
"accepted": true, "accepted": ["op-id"],
"missing_blobs": ["sha256..."] "count": 1,
"conflicts": []
} }
``` ```
@ -78,8 +85,7 @@ Client pull:
```json ```json
{ {
"device_id": "device-uuid", "since_sequence": 42
"since_revision": 42
} }
``` ```
@ -87,7 +93,7 @@ Response:
```json ```json
{ {
"server_revision": 50, "server_sequence": 50,
"ops": [] "ops": []
} }
``` ```
@ -157,7 +163,7 @@ retention:
Верстак не должен быть шпионской программой. Activity tracking должен быть явным и настраиваемым. Верстак не должен быть шпионской программой. Activity tracking должен быть явным и настраиваемым.
### Источники MVP ### Источники текущего MVP
- opened node; - opened node;
- edited note; - edited note;
@ -165,6 +171,8 @@ retention:
- changed file through app; - changed file through app;
- launched action. - launched action.
На текущем этапе события используются для conservative worklog suggestions и для глобальной/узловой ленты активности.
### Источники later ### Источники later
- file watcher/scanner; - file watcher/scanner;

View File

@ -18,7 +18,7 @@
- import/dokuwiki/mysql-cleanup.txt - import/dokuwiki/mysql-cleanup.txt
Быстрые действия: Быстрые действия:
[Новое дело] [Быстрая заметка] [Добавить файл] [Импорт DokuWiki] [Sync] *(future)* [Новое дело] [Добавить файл] [Журнал] [Sync]
``` ```
## 2. Общий layout ## 2. Общий layout
@ -34,7 +34,7 @@
│ Документы │ │ │ Документы │ │
└───────────────┴────────────────────────────────────┘ └───────────────┴────────────────────────────────────┘
*Примечание: Quick Add и Sync Status из оригинального макета пока не реализованы — в планах на будущее.* *Примечание: Sync Status реализован в footer сайдбара и открывает Settings → Sync. Quick Add как отдельная глобальная панель пока не реализован.*
``` ```
## 3. Sidebar tree ## 3. Sidebar tree
@ -167,6 +167,8 @@ Backup сайта run_script, confirm required
## 9. Активность ## 9. Активность
Текущий MVP фиксирует события внутри приложения: создание/изменение заметок, добавление/перемещение/удаление файлов и папок, создание/изменение узлов, запуск actions и добавление worklog. На основе этих событий строятся предложения для журнала работ.
```text ```text
14:05 opened admin.romashka.ru 14:05 opened admin.romashka.ru
14:18 opened catalog.xlsx 14:18 opened catalog.xlsx
@ -199,10 +201,9 @@ Search results:
Туда попадают: Туда попадают:
- импортированные DokuWiki pages; - будущие импортированные DokuWiki pages без уверенного назначения;
- файлы без дела; - будущие файлы без дела из scan work;
- папки из scan work; - будущие конфликты sync;
- конфликты sync;
- activity suggestions без уверенного дела. - activity suggestions без уверенного дела.
Actions: Actions:

View File

@ -6,8 +6,8 @@
- Go module; - Go module;
- cmd/verstak; - cmd/verstak;
- cmd/verstak-gui stub; - cmd/verstak-gui entrypoint;
- cmd/verstak-server stub; - cmd/verstak-server entrypoint;
- internal/core; - internal/core;
- SQLite connection; - SQLite connection;
- migrations; - migrations;
@ -144,19 +144,27 @@ Acceptance:
- можно постепенно разобрать папку `work`. - можно постепенно разобрать папку `work`.
## Milestone 10 — Sync server MVP (PAUSED) ## Milestone 10 — Sync server/client MVP
- HTTP server; - HTTP server;
- API key; - user auth + device registration;
- API key / device token flow;
- server db; - server db;
- push/pull ops; - push/pull ops;
- blob upload/download; - blob upload/download;
- restore manifest. - manual sync from GUI;
- sync settings in Settings.
Acceptance: Acceptance:
- две машины обмениваются изменениями через сервер. - две машины обмениваются изменениями через сервер.
Current gaps:
- restore manifest/download flow is not implemented;
- conflict resolver UI is not implemented;
- retention/snapshots are not implemented.
## Milestone 11 — Conflicts and restore ## Milestone 11 — Conflicts and restore
- conflict copy; - conflict copy;
@ -170,7 +178,7 @@ Acceptance:
- конфликт не теряет данные; - конфликт не теряет данные;
- можно восстановить vault на новой машине. - можно восстановить vault на новой машине.
## Milestone 12 — Activity MVP (PAUSED) ## Milestone 12 — Activity MVP
- activity events; - activity events;
- opened nodes; - opened nodes;
@ -183,6 +191,11 @@ Acceptance:
- Верстак предлагает worklog на основе следов. - Верстак предлагает worklog на основе следов.
Current gaps:
- file watcher/scanner events are not implemented;
- browser/active-window tracking is not implemented.
## Milestone 13 — File scanner/watcher (PAUSED) ## Milestone 13 — File scanner/watcher (PAUSED)
- snapshot scanner; - snapshot scanner;

View File

@ -216,7 +216,7 @@ Acceptance:
- GET /health; - GET /health;
- POST /sync/push; - POST /sync/push;
- POST /sync/pull; - POST /sync/pull;
- POST /blobs/upload; - POST /api/v1/blobs/;
- GET /blobs/{sha256}; - GET /blobs/{sha256};
- blob storage by sha256. - blob storage by sha256.
``` ```

View File

@ -21,19 +21,25 @@
- [x] Поиск по именам файлов. - [x] Поиск по именам файлов.
- [x] Поиск по журналу работ. - [x] Поиск по журналу работ.
- [x] Базовый импорт DokuWiki (плагин). - [x] Базовый импорт DokuWiki (плагин).
- [x] Базовая ручная синхронизация через сервер.
- [x] Базовые activity events и предложения для журнала работ.
- [x] Настройки vault/sync/templates/plugins.
## Необязательные, но желательные ## Необязательные, но желательные
- [ ] Неразобранное. - [ ] Неразобранное.
- [ ] Скан папки work. - [ ] Скан папки work.
- [ ] Внешние linked files. - [ ] Внешние linked files.
- [ ] Action log. - [x] Action log.
- [ ] Activity events MVP. - [x] Activity events MVP.
- [ ] Conflict resolver UI.
- [ ] Restore from sync server.
- [ ] Backup export / retention snapshots.
- [ ] TUI MVP. - [ ] TUI MVP.
## Не входит в первый MVP ## Не входит в первый MVP
- [ ] Полная синхронизация. - [ ] Полная синхронизация с restore/conflict UI/retention.
- [ ] Активные окна. - [ ] Активные окна.
- [ ] Browser tracking. - [ ] Browser tracking.
- [ ] Encrypted secret notes. - [ ] Encrypted secret notes.

View File

@ -26,7 +26,7 @@
| 13 | **Drag-and-drop** | ✅ выполнено (internal + external drops) | | 13 | **Drag-and-drop** | ✅ выполнено (internal + external drops) |
| 14 | **MVP stabilization** | ✅ выполнено | | 14 | **MVP stabilization** | ✅ выполнено |
| 15 | **Sync Server + Client** | ✅ выполнено | | 15 | **Sync Server + Client** | ✅ выполнено |
| 16 | **Activity Suggestions** | 🔄 в работе — global worklog dashboard + conservative suggestions + UX | | 16 | **Activity Suggestions** | ✅ выполнено базово — global worklog dashboard + conservative suggestions + UX |
| 17 | **File Scanner/Watcher** | ⏳ ожидает — fsnotify, snapshot scanner | | 17 | **File Scanner/Watcher** | ⏳ ожидает — fsnotify, snapshot scanner |
| 18 | **TUI MVP (Bubble Tea)** | ⏳ ожидает — tree/search, add worklog | | 18 | **TUI MVP (Bubble Tea)** | ⏳ ожидает — tree/search, add worklog |
| 19 | **Plugins: Lua runtime** | ⏳ ожидает — gopher-lua, hooks, sandbox | | 19 | **Plugins: Lua runtime** | ⏳ ожидает — gopher-lua, hooks, sandbox |
@ -167,9 +167,9 @@ Core service extensions:
--- ---
## Текущий этап: ШАГ 16 — Activity Suggestions ## Завершённый базовый этап: ШАГ 16 — Activity Suggestions
**Статус:** 🔄 в работе — activity-based suggestions + global worklog dashboard + conservative estimator. **Статус:** ✅ базово выполнено — activity-based suggestions + global worklog dashboard + conservative estimator.
Что реализовано: Что реализовано:
- `suggest.go` — структура Suggestion (nodeId, nodeTitle, summary, suggestedMin, confidence) - `suggest.go` — структура Suggestion (nodeId, nodeTitle, summary, suggestedMin, confidence)
@ -189,12 +189,7 @@ Core service extensions:
--- ---
## Ожидающие шаги (16-23) ## Ожидающие шаги (17-23)
### ШАГ 16 — Activity Suggestions
Подсказки для журнала работ на основе activity_events:
- анализировать события за день
- предлагать записи в worklog
### ШАГ 17 — File Scanner/Watcher ### ШАГ 17 — File Scanner/Watcher
- fsnotify watcher на vault - fsnotify watcher на vault
@ -231,8 +226,6 @@ Core service extensions:
verstak/ verstak/
go.mod go.mod
README.md README.md
PLAN.md
build.sh # Полная сборка (GUI + сервер)
AGENTS.md # Инструкции для AI-ассистента AGENTS.md # Инструкции для AI-ассистента
cmd/ cmd/
@ -275,8 +268,9 @@ verstak/
sync/ sync/
config/ config/
templates/ templates/
plugins/ # manager, lua (stub), builtin templates plugins/ # manager, lua (stub)
i18n/ # Go-локали (ru, en)
i18n/ # Go-локали (ru, en)
contrib/ contrib/
plugins/ plugins/
@ -292,6 +286,7 @@ verstak/
007_search.sql 007_search.sql
008_sync.sql 008_sync.sql
009_section.sql 009_section.sql
...
docs/ docs/
00_README.md 00_README.md