Files
summercms/.planning/phases/09-backend-admin-authentication-and-schema-pipeline/09-REVIEW-DISPOSITION.md
2026-09-27 23:52:18 +02:00

6.3 KiB

phase, review, titles, findings, open, total, recorded
phase review titles findings open total recorded
09 09-REVIEW.md json
id severity disposition title
CR-01 critical open Writable numeric fields cannot be saved; bad field values return 500 instead of 422
id severity disposition title
WR-01 warning open Required-permission wildcards never match, and multiple required codes use ALL rather than Winter's ANY
id severity disposition title
WR-02 warning open Navigation shows a denied parent item, including its label and target controller
id severity disposition title
WR-03 warning open Create, update and delete are not gated by the compiled list and form declarations
id severity disposition title
WR-04 warning open A form field that is `required` but limited by `context` makes every create fail
id severity disposition title
WR-05 warning open Relation link and unlink ignore the panel's toolbarButtons
id severity disposition title
WR-06 warning open A relation list without an explicit `sort` fails when the first column is not sortable
id severity disposition title
WR-07 warning open Relation column order depends on a fixed 16-space YAML indentation
id severity disposition title
WR-08 warning open List search returns 500 for non-text searchable columns, and the scaffold creates one
id severity disposition title
WR-09 warning open Scaffolded admin controllers have no permissions and no record source
id severity disposition title
WR-10 warning open Cabana silently reuses any guard already registered under the name "backend"
id severity disposition title
WR-11 warning open Login identifier can resolve to the wrong admin; admin:create does not prevent login/email collisions
id severity disposition title
WR-12 warning open The dummy hash cost is fixed at 10 while real hashes use the configured cost (timing oracle)
id severity disposition title
WR-13 warning open Admin passwords are passed as command-line flags
id severity disposition title
WR-14 warning open Logout cannot revoke a token whose access lifetime has expired but whose refresh window is still open
id severity disposition title
WR-15 warning open The editors pivot `granted_by` stores a backend_users id in a frontend-user column
id severity disposition title
WR-16 warning open Reflection helpers skip embedded structs and fall back to case-insensitive Go field names
id severity disposition title
WR-17 warning open User-level `backend_users.permissions` is ignored, so Winter denies are lost at cutover
id severity disposition title
WR-18 warning open The phase gate's zero-test check applies per invocation, not per package
id severity disposition title
WR-19 warning open Plugin hooks and scopes query outside the CRUD transaction
id severity disposition title
IN-01 info open A no-op relation mutation returns `{}`
id severity disposition title
IN-02 info open Relation search does not escape LIKE wildcards
id severity disposition title
IN-03 info open `last_page` is inconsistent between the list and relation endpoints
id severity disposition title
IN-04 info open Page parsing and the offset computation can overflow
id severity disposition title
IN-05 info open Controllers with unroutable IDs are accepted
id severity disposition title
IN-06 info open The bulk-delete decoder is looser than the relation decoder
id severity disposition title
IN-07 info open Dead dropdown branches and SQL built by string concatenation in the albums controller
id severity disposition title
IN-08 info open The password-reset cutoff also rejects logins made within about 1-2 seconds of the reset
id severity disposition title
IN-09 info open Album scoping hides database errors as an empty list
id severity disposition title
IN-10 info open Read-only GETs take row locks
id severity disposition title
IN-11 info open Logout reports success without revoking when no blacklist is configured
id severity disposition title
IN-12 info open The scaffold marks a file that must be edited as "DO NOT EDIT"
32 32 2026-09-27T21:52:17.704Z

Phase 09: Code Review Disposition

Finding Severity Disposition Source
CR-01 critical open -
WR-01 warning open -
WR-02 warning open -
WR-03 warning open -
WR-04 warning open -
WR-05 warning open -
WR-06 warning open -
WR-07 warning open -
WR-08 warning open -
WR-09 warning open -
WR-10 warning open -
WR-11 warning open -
WR-12 warning open -
WR-13 warning open -
WR-14 warning open -
WR-15 warning open -
WR-16 warning open -
WR-17 warning open -
WR-18 warning open -
WR-19 warning open -
IN-01 info open -
IN-02 info open -
IN-03 info open -
IN-04 info open -
IN-05 info open -
IN-06 info open -
IN-07 info open -
IN-08 info open -
IN-09 info open -
IN-10 info open -
IN-11 info open -
IN-12 info open -

Dispositions: open (recorded, not yet triaged), fixed, skipped, deferred. Set deferred by hand and put the reason in the Source cell; both are preserved. A | in the reason is kept as prose and escaped on the next run. Re-running the gate keeps every row it can. A row the current review no longer reports is kept and its Source cell flagged, so a finding does not leave this record silently. ONE exception: when a finding id is REUSED by a different finding, the earlier decision cannot keep a row — the id is taken — and it is dropped. A RECORDED decision (anything but open) is named on the console when that happens; a row still at open is replaced silently, because open records no decision to lose.