feat: add pinned allocator lesson view
This commit is contained in:
+29
-1
@@ -27,9 +27,15 @@ dlatego nie należy wystawiać go bezpośrednio poza zaufany host.
|
||||
Hierarchia nawigacji jest stała:
|
||||
|
||||
```text
|
||||
task → block → phase → step → snapshot
|
||||
card → task → block → phase → step → snapshot
|
||||
```
|
||||
|
||||
Ruch kursora przez `move` lub `PUT current` nie uruchamia symulatora.
|
||||
Jawna aktywacja odbywa się przez `Enter` w WWW albo `F2` w WWW/Neovimie,
|
||||
które wywołują `POST /api/navigation/sync`. Dla poziomu BLOCK backend wybiera
|
||||
pierwszy STEP tego bloku. CARD i TASK są odrzucane, ponieważ nie wskazują
|
||||
konkretnego checkpointu diagramu.
|
||||
|
||||
| Metoda i endpoint | Znaczenie |
|
||||
| --- | --- |
|
||||
| `GET /api/keyboard` | Skróty i obsługiwane poziomy nawigacji. |
|
||||
@@ -37,6 +43,7 @@ task → block → phase → step → snapshot
|
||||
| `GET /api/navigation/current` | Bieżąca pozycja oraz status checkpointu. |
|
||||
| `PUT /api/navigation/current` | Ustawia dokładną pozycję i poziom fokusu. |
|
||||
| `POST /api/navigation/move` | Przesuwa kursor o `delta` na wybranym poziomie. |
|
||||
| `POST /api/navigation/sync` | Odtwarza checkpoint przypisany do bieżącej, zapisanej pozycji. |
|
||||
|
||||
Przykład ustawienia kroku — identyfikatory są danymi konkretnej karty:
|
||||
|
||||
@@ -81,6 +88,13 @@ Wywołanie orkiestratora przypina zarówno kontener, jak i rewizję karty:
|
||||
}
|
||||
```
|
||||
|
||||
Backend przechowuje bieżącą nawigację i stan viewera w SQLite. Domyślna baza
|
||||
to `.stem/card-state.sqlite3`; ścieżkę można zmienić przez
|
||||
`CARD_STATE_DATABASE`. Ta sama aplikacja wystawia HTTP również przez lokalny
|
||||
socket `.stem/card-api.sock` (`CARD_API_SOCKET`). Repozytorium jest montowane w
|
||||
kontenerze jako `/workspace`, dlatego Neovim wywołuje API przez
|
||||
`/workspace/.stem/card-api.sock` bez otwierania dodatkowego portu sieciowego.
|
||||
|
||||
Replay kończy się powodzeniem wyłącznie ze statusem `ready`. Zmiana kontenera,
|
||||
socketu MCP albo źródłowego JSON-a podczas operacji powoduje odrzucenie
|
||||
wyniku; pozycja strony i `SYNC ON` nie są wtedy publikowane.
|
||||
@@ -93,6 +107,8 @@ wyniku; pozycja strony i `SYNC ON` nie są wtedy publikowane.
|
||||
| `GET /api/nvim/state` | Bieżący bufor, okno, kursor i tryb Neovima. |
|
||||
| `PUT /api/nvim/cursor` | Ustawia `row`, `column` i opcjonalnie `window`. |
|
||||
| `POST /api/nvim/input` | Przekazuje do 256 znaków przez `nvim_input`. |
|
||||
| `POST /api/nvim/reset` | Resetuje cel i odświeża debugger (`F1`). |
|
||||
| `POST /api/nvim/redraw` | Dopasowuje host pane i grid UI, a następnie wykonuje pełny redraw (`Ctrl+\``). |
|
||||
| `WS /api/nvim-ui` | Strumień zewnętrznego UI Neovima do panelu WWW. |
|
||||
|
||||
Pole `viewer.scroll` zapisuje położenie dokumentu (`x`, `y`), numer strony
|
||||
@@ -104,6 +120,10 @@ Wyłączenie `viewer.nvim.sync` automatycznie wyłącza również
|
||||
`viewer.nvim.control`. Samo ponowne włączenie synchronizacji nie uzbraja
|
||||
sterowania klawiaturą bez jawnego `control: true`.
|
||||
|
||||
`viewer.allocator.visible` przechowuje stan przypiętego modelu alokatora.
|
||||
Model jest przełączany przez `Alt+6` i pokazuje fazę/krok, `allocp`, zajętość
|
||||
areny oraz wartości związane z bieżącym checkpointem.
|
||||
|
||||
### Podział odpowiedzialności widoków
|
||||
|
||||
Interaktywny diagram UML pokazuje przepływ i służy do wyboru kroku. Nie
|
||||
@@ -119,6 +139,14 @@ diagramem.
|
||||
| `GET /api/progress` | Katalog, statusy i podsumowanie wykonania. |
|
||||
| `PUT /api/progress/:itemId` | Ustawia `pending` albo `approved`, notatkę i aktora. |
|
||||
| `GET /api/report/teams.md` | Generuje bieżący raport Markdown do Teams. |
|
||||
| `GET/POST /api/events` | Odczytuje lub dopisuje chronologiczne zdarzenia z timestampem backendu. |
|
||||
| `POST /api/evidence` | Zapisuje PNG/JPEG i przypina go do zdarzenia. |
|
||||
| `GET /api/evidence/:name` | Udostępnia zapisany dowód. |
|
||||
| `GET /api/report/lesson.html` | Renderuje chronologiczny raport HTML z dowodami. |
|
||||
|
||||
Zdarzenia są dopisywane do SQLite i obejmują nawigację, aktywacje
|
||||
checkpointów, reset/redraw Neovima, zmiany viewera oraz postęp. Dzięki temu
|
||||
raport pokazuje rzeczywistą kolejność pracy, a nie wyłącznie końcowy stan.
|
||||
|
||||
## Planowane strategie i adnotacje
|
||||
|
||||
|
||||
Reference in New Issue
Block a user