97 lines
5.7 KiB
Markdown
97 lines
5.7 KiB
Markdown
# Administration follow-up: Gitea #28–#31
|
||
|
||
Baseline approved by the user: `f52bf22e` on `codex/prototype-administration-pages`.
|
||
Existing Admin, Core, sessions, and unified-model work is outside this review diff.
|
||
|
||
## Ticket acceptance
|
||
|
||
- [#28](https://git.tylconsulting.it/mptyl/ThothII/issues/28): Workspace page has four
|
||
tabs, in order: Preparation, Specific actions, About, Authentication. Every area's
|
||
content remains vertically accessible, with scrolling where required.
|
||
- [#29](https://git.tylconsulting.it/mptyl/ThothII/issues/29): Database opens at the
|
||
existing database list instead of automatically editing a connection. Owner comment:
|
||
remove the “Workspace preparation” footer and restore the table's original available
|
||
space and margins. Tables and columns remain accessible through the original grid actions.
|
||
- [#30](https://git.tylconsulting.it/mptyl/ThothII/issues/30): Pi fills the available
|
||
height minus its margins, scrolls overflowing content, and initially opens the tab
|
||
for the installation OS (Linux on a Linux server, macOS or Windows otherwise).
|
||
- [#31](https://git.tylconsulting.it/mptyl/ThothII/issues/31): Keep “management” in page
|
||
titles, remove it from Admin buttons; use “Pi configuration” for Pi.
|
||
|
||
## Scope and compatibility
|
||
|
||
The global workspace/model gate, operation locks, original Core, session navigation,
|
||
and unsaved-change guards are retained. The list currently retains the existing global
|
||
workspace scope; an asynchronous question asks whether the user wants to broaden this
|
||
to all workspaces. No cross-workspace operations are introduced without that decision.
|
||
|
||
Workspace tab panels stay mounted, preserving secret drafts and diagnostics. Pi platform
|
||
selection stays mounted across the two Pi sections and does not replace a manual choice
|
||
when status refreshes. OS information is projected by the host CLI, not inferred from
|
||
the browser. Older unprojected installations fall back to the backend runtime OS; see
|
||
the [operator guide](../general/pi-configuration.md#host-instructions-in-administration).
|
||
|
||
## Verification
|
||
|
||
TDD seams: AppShell navigation and public management-page behavior with MSW API fixtures;
|
||
the existing public Pi service and host projection contracts cover OS transport.
|
||
Red tests were observed before adding tabs, restoring list entry, selecting OS tabs,
|
||
projecting the host platform, and shortening navigation labels.
|
||
|
||
- Frontend full Vitest run: 82 files, 677 tests passed.
|
||
- Backend full Vitest run: 108 files passed, one skipped; 1,380 tests passed, 40 existing
|
||
optional tests skipped. Backend typecheck passed.
|
||
- After review fixes: all five affected frontend suites passed (163 tests, including
|
||
two new production-mode persisted-navigation regressions); frontend typecheck and
|
||
production build passed. The existing large-chunk advisory remains.
|
||
- The complete host CLI suite (`go test ./...`) passed across all 21 packages, including
|
||
the OS model-projection assertion.
|
||
- Strict documentation build passed.
|
||
- Read-only browser QA of actual React pages at 1280, 768 and 390 CSS pixels checked
|
||
Workspace tabs, Database table space, and Pi height/overflow. Pi's long instructions
|
||
initially exposed horizontal page overflow at 390 pixels; constrained grid children
|
||
and narrow definition lists corrected it. Database QA used an empty synthetic catalog;
|
||
the unit suites exercise populated tables, columns, edits and operation guards.
|
||
- Docker and real-stack Playwright acceptance were not run during initial implementation.
|
||
The preview is synthetic and read-only, not a deployment or provider smoke test.
|
||
|
||
## Standards
|
||
|
||
Initial independent review: one documented ADR conflict and one maintainability
|
||
judgement call. ADR 0020 now records the owner's superseding #29 footer decision.
|
||
Workspace and Pi now share keyboard tab navigation rather than duplicate its switch.
|
||
The independent follow-up review confirmed both findings resolved, with no new regressions.
|
||
|
||
## Spec
|
||
|
||
Initial independent review: two P2 findings. Fresh Database entry could still restore
|
||
Tables/Relationships from local storage, and a real-stack test retained the old Admin
|
||
button-label regex. Both were corrected; fresh entry is list-first while in-memory
|
||
navigation is retained when moving between already mounted app surfaces.
|
||
The independent follow-up review confirmed both findings resolved, with no new regressions.
|
||
|
||
Review summary: Standards 2 findings resolved, 0 outstanding; Spec 2 findings resolved,
|
||
0 outstanding. Both reviews were read-only, relative to the user-approved baseline.
|
||
|
||
## Local Docker deployment
|
||
|
||
At the owner's request, core and frontend were rebuilt from this checkout and recreated
|
||
on 2026-09-12 at 18:31 UTC using `/private/tmp/thothii-memory-preview.sh`, with
|
||
`--no-deps --force-recreate --wait`. Both are healthy. Database, Qdrant and embedding
|
||
containers retained their original IDs; no persistent volumes were deleted or recreated.
|
||
|
||
The normal model projection generator was run on this Mac before recreation; the running
|
||
core now receives `THT_HOST_PLATFORM=darwin`. The authored installation configuration and
|
||
credentials were unchanged. Before the update, images were retained as
|
||
`thothii-core:before-admin-28-31-20260912` and
|
||
`thothii-frontend:before-admin-28-31-20260912`; the prior projection directory was copied to
|
||
`/private/tmp/thoth-admin-28-31-docker.5ebAo8/generated`.
|
||
|
||
HTTP checks for the real UI (`http://127.0.0.1:8080/`), its `/api/health` proxy, and
|
||
the core `/health` returned 200. Served bundle `/index-Bsz7otBx.js` contains Workspace
|
||
areas and Pi configuration, and no longer contains the preparation footer or persisted
|
||
Database child-screen key. Authenticated end-to-end operator workflows were not rerun.
|
||
|
||
The Vite preview remains separate from Docker. Remote server deployment was not performed.
|
||
No Gitea issue state or remote branch was changed.
|