Commit Graph

709 Commits

Author SHA1 Message Date
Jakub Zych
b3fda9188f docs(12): create phase plan 2026-10-02 08:40:06 +02:00
Jakub Zych
d97b4292a3 docs(12): record post-research decisions and validation strategy 2026-10-02 08:04:23 +02:00
Jakub Zych
77f8b371cf docs(12): research phase domain 2026-10-02 01:08:08 +02:00
Jakub Zych
8cc7b81559 docs: defer phase 11.3 newsletter to backlog as 999.1 2026-10-02 00:49:47 +02:00
Jakub Zych
3f650ffcd4 docs(10, 10.2): regenerate verification reports for modules/ paths 2026-10-01 23:32:42 +02:00
Jakub Zych
f2f2279be9 docs(phase-9): complete phase execution 2026-10-01 23:19:21 +02:00
Jakub Zych
9692315cb5 docs(09): verification passed 2026-10-01 23:18:53 +02:00
Jakub Zych
ba1aaefa01 docs(09): record approved review decisions and close UAT 2026-10-01 23:13:02 +02:00
Jakub Zych
2da8112dbb fix(09): WR-11 enforce case-insensitive unique backend user emails
Add a backend admin migration that creates a unique index on
lower(backend_users.email). Rows copied from WinterCMS may hold emails
that differ only in case, so the migration refuses to run and names the
clashing logins instead of choosing an account to drop.
2026-10-01 23:12:29 +02:00
Jakub Zych
5d79f7d0bb docs(09): re-verify phase after code review fixes 2026-10-01 21:50:43 +02:00
Jakub Zych
2ecc85ea19 docs(09): record code review disposition 2026-10-01 21:43:15 +02:00
Jakub Zych
9d2128acc2 docs(09): add code review fix report 2026-10-01 21:43:14 +02:00
Jakub Zych
4ae272e3cc fix(09): WR-19 expose the write transaction to hooks and scopes through TxFromContext 2026-10-01 21:37:13 +02:00
Jakub Zych
bbdc7a6b7e fix(09): WR-18 judge the gate's zero-test check per package 2026-10-01 21:35:18 +02:00
Jakub Zych
8479defe53 fix(09): WR-17 merge an admin's own permissions over the role's, honouring denies 2026-10-01 21:33:07 +02:00
Jakub Zych
629fac4d29 fix(09): WR-16 resolve model columns through embedded structs and explicit column tags 2026-10-01 21:31:46 +02:00
Jakub Zych
2d96adf775 fix(09): WR-10 keep cabana's own backend guard when it is activated twice on one application 2026-10-01 21:31:46 +02:00
Jakub Zych
299d220b51 fix(09): WR-14 let logout revoke an expired token that is still refreshable and always clear the cookie 2026-10-01 21:23:42 +02:00
Jakub Zych
c9bb14944a fix(09): WR-13 read admin passwords from a prompt or stdin and deprecate the --password flag 2026-10-01 21:20:20 +02:00
Jakub Zych
331351a73c fix(09): WR-11 reject ambiguous admin logins and cross-field login or email collisions 2026-10-01 21:17:50 +02:00
Jakub Zych
eb8c727790 fix(09): WR-12 time a missing admin login at the configured bcrypt cost 2026-10-01 21:17:37 +02:00
Jakub Zych
3f476164f9 fix(09): WR-10 fail boot when another plugin already owns the backend guard 2026-10-01 21:15:05 +02:00
Jakub Zych
20a79c5df4 fix(09): WR-09 scaffold admin controllers with a required permission and a record source placeholder 2026-10-01 21:13:40 +02:00
Jakub Zych
8b48eea4e1 fix(09): WR-08 search non-text list columns as text instead of failing in SQL 2026-10-01 21:11:38 +02:00
Jakub Zych
b026aec162 fix(09): WR-07 keep relation column order from the YAML itself, not a fixed indentation 2026-10-01 21:10:09 +02:00
Jakub Zych
889250c8fb fix(09): WR-06 default a relation list to its first sortable column 2026-10-01 21:07:54 +02:00
Jakub Zych
9bca815b1b fix(09): WR-05 refuse relation link and unlink the panel does not declare 2026-10-01 21:07:11 +02:00
Jakub Zych
b8084080cb fix(09): WR-04 apply a form field's required flag only in the contexts that can supply it 2026-10-01 21:05:33 +02:00
Jakub Zych
f2ab93f291 fix(09): WR-03 refuse writes that the compiled list and form do not declare 2026-10-01 21:04:31 +02:00
Jakub Zych
28aa073de0 fix(09): WR-02 drop a denied main menu item and never link it to a controller the admin cannot open 2026-10-01 20:59:26 +02:00
Jakub Zych
b4b8b5df64 fix(09): WR-01 match wildcard required permissions and treat several codes as any, like Winter 2026-10-01 20:58:16 +02:00
Jakub Zych
1a878b371e docs(09): regenerate verification report for modules/ paths 2026-10-01 20:54:54 +02:00
Jakub Zych
6a2ee9d2f9 docs: capture todo - Benchmark Płytarium on WinterCMS vs SummerCMS 2026-10-01 20:25:24 +02:00
Jakub Zych
ecdef31c38 docs(quick-261001-qoa): add a docs page on performance and scaling compared to PHP/WinterCMS 2026-10-01 19:21:34 +02:00
Jakub Zych
4103d95a1a docs(architecture): add performance and scaling page compared to PHP-FPM 2026-10-01 19:20:46 +02:00
Jakub Zych
2fc5eac6d5 test(11.2): record the WR-03 decision in UAT 2026-10-01 17:13:16 +02:00
Jakub Zych
37f7192832 docs(11.2): add code review fix report and record dispositions 2026-10-01 17:13:08 +02:00
Jakub Zych
bd2f7e7cb5 docs(setup): explain adding the Go bin directory to PATH after go install 2026-10-01 17:12:53 +02:00
Jakub Zych
be51bfe1e1 fix(11.2): WR-04 keep the site gate's summary grep non-fatal
Under set -e a missing TAP summary aborted run_site without a refuse
message; the explicit refuse checks now report it. The site's test
script pins the TAP reporter so the summary lines exist on Node 23+.
2026-10-01 17:06:16 +02:00
Jakub Zych
fbec0b4597 test(11.2): persist verification report and human verification items as UAT 2026-10-01 16:57:16 +02:00
Jakub Zych
749ceea5ea docs(11.2): add code review report and disposition ledger 2026-10-01 16:49:40 +02:00
Jakub Zych
5a16c3f6d5 docs(state): record plan 11.2-03 completion 2026-10-01 16:40:56 +02:00
Jakub Zych
c07db9a321 docs(11.2-03): complete the unit test coverage and phase gate plan 2026-10-01 16:40:36 +02:00
Jakub Zych
a2f2d1e5c7 docs(11.2): validate the phase verification map 2026-10-01 16:39:09 +02:00
Jakub Zych
29adc23595 test(11.2): complete the phase gate
- --built: build.sh (release when the framework checkout has v0.1.0, else
  dev), then TestLandingLinks, TestTerminalCommandsInPage and
  TestDocsHeaderSiteLink with SUMMERCMS_REQUIRE_BUILD=1, required to PASS
- --smoke and --deploy require smoke: ok and check-deploy: ok
- --terminal runs TestTerminalCommands with this checkout as the clone URL;
  --verbatim leaves the page's URL for the cutover run
- --full runs the framework's whole suite; --all runs every stage in order
2026-10-01 16:39:09 +02:00
Jakub Zych
f5f9387ac9 test(11.2): cover site_url and site_label and gate the framework, app and site stages
- TestCheckSiteURL (21 accepted and rejected values), TestSiteLabel and
  TestSiteURLPrecedence (option over site.yaml, label-without-URL and
  invalid option errors); new TestParseSite rows for blank and two-line labels
- TestSiteLink: escaped label, section page and 404 page, exact unset header
  bytes
- TestDocsSiteFlagsInHelp and the --site-label-without-URL error
- check-phase11.2.sh --framework, --app and --site
2026-10-01 16:35:09 +02:00
Jakub Zych
18fe100113 test(11.2): add the phase gate with the plugin stage
- scripts/check-phase11.2.sh --plugin: go vet, the named plugin tests through
  a go test -json detector (fail, skip, missing test, zero tests and no tests
  to run all refuse) and a 90% statement coverage floor
- unknown modes print usage and exit 2
2026-10-01 16:31:20 +02:00
Jakub Zych
2229ca3c60 docs(state): record plan 11.2-02 completion 2026-10-01 16:24:24 +02:00
Jakub Zych
29231efab2 docs(11.2-02): complete the summercms.io app, site plugin and deploy plan 2026-10-01 16:24:01 +02:00
Jakub Zych
a494375db7 feat(docsite): optional site_url and site_label link back to the main site
- site.yaml keys site_url and site_label, validated: http(s) URL with a host
  or a path starting with a single /; a label needs a URL
- docs:build and docs:serve flags --site-url and --site-label override them
  the way --base-url overrides base_url
- every page header, the 404 page included, links back with the explicit
  label, else the URL host, else Home; unset output is unchanged
- docs/console/utilities.md documents the keys and flags
2026-10-01 16:09:40 +02:00