| 15-journal-plugin |
04 |
testing |
| journal |
| phpunit |
| testcontainers |
| race |
| phase-gate |
| asvs |
| typesense |
|
| phase |
provides |
| 15-03 |
Anonymous GET /_journal/api/v1, Bearer writes, JOURNAL-005, media, RSS, Typesense gate, named wave-3 tests at plugin root |
|
|
| TestJournalEndToEnd on real Postgres through party/surf/cabana |
| D-05 PHPUnit map: TestFillable, TestJournal005DraftShow, TestJournal006MediaUpload, TestFormatHTMLRejectsUnsafeHTML, rollback/remigrate |
| scripts/check-phase15.sh fail-closed gate ending with Phase 15 gate passed |
| 15-SECURITY-REVIEW.md ASVS L1 with T-15-01..15 and T-15-SC closed |
|
|
| tokens |
tasks |
commits |
| 28000 |
3 |
6 |
|
05b77b7818 |
7307b36baa |
d09edde080ee32bdac9caca9e4c92d8d12791020 |
ff20e6cce25628341c4c1e6b5879f1f3979baa2d |
| added |
patterns |
|
|
| Wave-3 HTTP tests stay at plugin root sharing admin_harness TestMain; controllers/api tests cover clampPerPage and media path units |
| Phase gate uses go -C for sibling plugin and proof host; Docker/Postgres failure is a failure except explicit -short |
| Security review without a dedicated auditor still re-runs every cited TestName and records that fallback |
|
|
| created |
modified |
| ../sm-journal-plugin/models/fillable_test.go |
| ../sm-journal-plugin/models/translatable_test.go |
| ../sm-journal-plugin/classes/format_html_test.go |
| ../sm-journal-plugin/updates/migrations_test.go |
| ../sm-journal-plugin/controllers/api/posts_test.go |
| ../sm-journal-plugin/controllers/api/media_test.go |
| ../sm-journal-plugin/search_test.go |
| ../sm-journal-plugin/journal_api_matrix_test.go |
| ../sm-journal-plugin/integration_test.go |
| ../sm-journal-plugin/admin_harness_test.go |
| scripts/check-phase15.sh |
| .planning/phases/15-journal-plugin/15-SECURITY-REVIEW.md |
|
| ../sm-journal-plugin/journal_api_writes_test.go |
| ../sm-journal-plugin/journal_api_task3_test.go |
| ../sm-journal-plugin/plugin_test.go |
| ../sm-journal-plugin/updates/postgres_test.go |
| ../sm-grzybyfunkcjonalne-app/boot_test.go |
| ../sm-grzybyfunkcjonalne-app/plugins/golem15/journal |
| .planning/phases/15-journal-plugin/15-VALIDATION.md |
|
|
| Reuse wave-3 named HTTP tests at plugin root rather than relocating them into controllers/api (dispatch-authorized); JOURNAL-005/401/media/RSS remain named |
| 15-04 security review was executor-self-performed (no gsd-security-auditor in this Cursor session); every cited TestName was re-run |
| TestSearchGateOff must not skip; unpublished ShouldBeSearchable stays false even if the in-memory gate is flipped on |
|
| Fail-closed phase gate: named PASS lines, refuse skip/no-tests/race, sibling go -C, PHP SHA pin 02110eb1, forbidden-surface scan including D-16 tide |
| Host journal gitlink is a nested clone; bump via file:// fetch with protocol.file.allow=always |
|
| D-01 |
| D-02 |
| D-03 |
| D-04 |
| D-05 |
| D-06 |
| D-07 |
| D-08 |
| D-09 |
| D-10 |
| D-11 |
| D-12 |
| D-13 |
| D-14 |
| D-15 |
| D-16 |
| D-17 |
| D-18 |
| D-19 |
| D-20 |
| D-21 |
| D-22 |
| D-23 |
|
| id |
description |
requirement |
verification |
human_judgment |
| D1 |
Real-Postgres e2e migrates, admin-creates an mlmarkdown post, lists published rows, 401s anonymous writes, and 404s draft show |
D-05 |
| kind |
ref |
status |
| e2e |
../sm-journal-plugin#TestJournalEndToEnd |
pass |
|
| kind |
ref |
status |
| integration |
../sm-grzybyfunkcjonalne-app#TestBootUserTranslateJournal |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D2 |
PHPUnit map, migrations rollback/remigrate, FormatHTML unsafe tags, search-gate zero HTTP, categories/tags/RSS/featured-image auth |
D-05 |
| kind |
ref |
status |
| unit |
../sm-journal-plugin/models#TestFillable |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin/updates#TestJournalMigrationsRollbackAndRemigrate |
pass |
|
| kind |
ref |
status |
| unit |
../sm-journal-plugin/classes#TestFormatHTMLRejectsUnsafeHTML |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestSearchGateOff |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestJournalPublicCategories |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestJournalPublicTags |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestJournalRSS |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestJournalFeaturedImageUnauthenticated |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D3 |
Fail-closed check-phase15.sh --all plus ASVS L1 review closing T-15-01..15 and T-15-SC |
D-07 |
| kind |
ref |
status |
| other |
bash scripts/check-phase15.sh --all |
pass |
|
| kind |
ref |
status |
| other |
.planning/phases/15-journal-plugin/15-SECURITY-REVIEW.md |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
rationale |
| D4 |
Proof-host Journal SPA check as an administrator holding golem15.journal.* |
D-19 |
|
true |
Needs a running host, admin login, and visual confirmation of Journal nav plus mlmarkdown create; recorded as end-of-phase UAT |
|
|
75min |
2026-10-06 |
complete |