docs: update roadmap status from current code
This commit is contained in:
parent
bb0bb608e3
commit
3a20e1b093
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
19
docs/PLAN.md
19
docs/PLAN.md
|
|
@ -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,7 +268,8 @@ 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/
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue