| 12.1-user-plugin-admin-screens |
05 |
testing |
| cabana |
| pact |
| sm-user-plugin |
| admin |
| vitest |
| check-phase12.1 |
| security-review |
| coverage |
| privileged-groups |
|
| phase |
provides |
| 12.1-user-plugin-admin-screens |
plans 01 to 04: framework contracts at v0.1.3, the three admin screens, T-12-18 / D-30 guards, smoke tests, validation seed |
|
|
| TestPhase121Threats in cabana (T-12.1-01 to T-12.1-15) and in sm-user-plugin (T-12.1-18..25, 27..31, 34, 38, 39; T-12-18 cited) |
| scripts/check-phase12.1.sh fail-closed gate (self-test, go, security, removal, coverage, spa, openapi, dist, docs, hygiene, app, evidence, all) |
| SPA unit tests including the five UI-SPEC backstops |
| 12.1-SECURITY-REVIEW.md (threats_open 0) and signed-off 12.1-VALIDATION.md (nyquist_compliant true) |
|
| gsd-verify-work |
| sm-user-plugin publication |
| fonoteka.go push |
|
| tokens |
tasks |
commits |
| 141472 |
3 |
7 |
|
52f864ebfc |
93f0171e9c |
sm-user-plugin (../fonoteka.go/plugins/golem15/user) |
7 |
469315510809f703fc315aceaa9ef902794a0237 |
2b04cda3ff8c4375ca4206f6ae751a6221db0483 |
fonoteka.go (../fonoteka.go) |
2 |
35a727f1ddfde0a443cf203193bf3705fe3158a1 |
93b8b758d540e5edb5095c8ed99998e57d4150d8 |
| added |
patterns |
|
|
| Phase gate: go test -json detector refuses fail, skip, zero tests, non-JSON, missing named prefix; removal is anchor-exact mutate / assert-fail / cmp restore |
| One TestPhase121Threats per repository, subtest named by threat id; high/critical threats also have a removal row |
|
|
| created |
modified |
| scripts/check-phase12.1.sh |
| modules/cabana/phase121_threats_test.go |
| modules/cabana/phase121_bulk_test.go |
| modules/cabana/phase121_record_test.go |
| modules/cabana/phase121_rowstate_test.go |
| modules/cabana/phase121_forbidden_test.go |
| modules/cabana/phase121_preview_test.go |
| modules/cabana/phase121_fields_test.go |
| modules/cabana/phase121_permission_test.go |
| modules/cabana/phase121_relation_lock_test.go |
| modules/cabana/phase121_list_test.go |
| modules/cabana/phase121_schema_boot_test.go |
| admin/tests/list/BulkActionsMenu.test.ts |
| admin/tests/list/RowStateBadges.test.ts |
| admin/tests/form/RecordActions.test.ts |
| admin/tests/form/PreviewView.test.ts |
| admin/tests/form/PreviewField.test.ts |
| admin/tests/form/PermissionEditorField.test.ts |
| admin/tests/form/PasswordField.test.ts |
| admin/tests/form/FormErrorBanner.test.ts |
| ../fonoteka.go/plugins/golem15/user/phase121_security_test.go |
| ../fonoteka.go/plugins/golem15/user/admin_users_edge_test.go |
| ../fonoteka.go/plugins/golem15/user/admin_groups_edge_test.go |
| ../fonoteka.go/plugins/golem15/user/admin_organisations_edge_test.go |
| ../fonoteka.go/plugins/golem15/user/admin_registration_test.go |
| .planning/phases/12.1-user-plugin-admin-screens/12.1-SECURITY-REVIEW.md |
|
| modules/pact/capabilities_test.go |
| admin/tests/list/ListToolbar.test.ts |
| admin/tests/list/DataTable.test.ts |
| admin/tests/list/ListView.test.ts |
| admin/tests/form/RelationField.test.ts |
| admin/tests/form/FormView.test.ts |
| admin/tests/form/formState.test.ts |
| admin/tests/form/registry.test.ts |
| admin/tests/app/winterUrl.test.ts |
| admin/tests/app/router.test.ts |
| docs/backend/forms.md |
| docs/backend/relation-manager.md |
| .planning/phases/12.1-user-plugin-admin-screens/12.1-VALIDATION.md |
| ../fonoteka.go/plugins/golem15/user/classes/admin_actions.go |
| ../fonoteka.go/plugins/golem15/user/classes/privileged.go |
| ../fonoteka.go/plugins/golem15/user/models/user.go |
|
|
| Security review was self-performed by the executor (no reviewer agent on this runtime); threats_open 0; five findings_for_decision recorded, not closed silently |
| pending: push sm-user-plugin — condition (c) failed: git ls-remote --tags origin v0.1.3 is empty. Conditions (a)(b)(d) hold. Nothing was pushed. |
| No follow-up framework tag: git diff --name-only v0.1.3 HEAD -- modules cmd admin/src lists only Go tests and testdata |
| Two plugin production fixes during tests (FX-1 clean statement, FX-2 group filter value); FX-3 is a test-only strengthening of T-12.1-24 |
|
| Last plan of a phase: named threat tests, 80% coverage floor, removal harness, SECURITY-REVIEW, VALIDATION sign-off, then one plugin push point gated on a published framework tag |
|
|
| id |
description |
requirement |
verification |
human_judgment |
| D1 |
Named threat tests in both repos and a fail-closed --security stage |
SC-5 |
| kind |
ref |
status |
| integration |
modules/cabana/phase121_threats_test.go#TestPhase121Threats |
pass |
|
| kind |
ref |
status |
| integration |
../fonoteka.go/plugins/golem15/user/phase121_security_test.go#TestPhase121Threats |
pass |
|
| kind |
ref |
status |
| other |
scripts/check-phase12.1.sh --self-test && --security |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D2 |
Go unit/integration coverage at or above 80% for pact, cabana, and the user plugin packages root, classes, controllers, models, updates |
SC-5 |
| kind |
ref |
status |
| other |
scripts/check-phase12.1.sh --coverage (pact 100.0, cabana 86.6, plugin root 89.1, classes 89.0, controllers 83.0, models 95.7, updates 90.2) |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D3 |
SPA unit tests including the five UI-SPEC backstops; OpenAPI, dist, docs, hygiene |
SC-5 |
| kind |
ref |
status |
| unit |
admin/tests/list/ListView.test.ts#backstop: focus returns to the bulk menu trigger |
pass |
|
| kind |
ref |
status |
| unit |
admin/tests/app/winterUrl.test.ts#backstop: mapWinterUrl maps preview/:id |
pass |
|
| kind |
ref |
status |
| unit |
admin/tests/list/RowStateBadges.test.ts#backstop: a row state outside the fixed set |
pass |
|
| kind |
ref |
status |
| unit |
admin/tests/form/PermissionEditorField.test.ts#backstop: radio/checkbox emission and locked row |
pass |
|
| kind |
ref |
status |
| unit |
admin/tests/form/RelationField.test.ts#backstop: a locked option cannot be chosen |
pass |
|
| kind |
ref |
status |
| other |
scripts/check-phase12.1.sh --spa --openapi --dist --docs --hygiene |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D4 |
Removal harness proves high/critical protections including D-30 FormBeforeUpdate and FormBeforeDelete |
SC-5 |
| kind |
ref |
status |
| other |
scripts/check-phase12.1.sh --removal (27 rows, RC-23 T-12.1-38, RC-24 T-12.1-39) |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
rationale |
| D5 |
Security review maps T-12.1-01..40 and T-12.1-SC; validation signed off; plugin push pending on origin tag |
SC-5 |
| kind |
ref |
status |
| other |
scripts/check-phase12.1.sh --evidence && --all |
pass |
|
|
true |
End-of-phase visual walk of the three screens in light and dark mode, and the D-30 email/password/delete feel, cannot be asserted by unit tests (plan 05 Task 3 human-check). |
|
|
103min |
2026-10-05 |
complete |