Commit Graph

1664 Commits

Author SHA1 Message Date
Jakub Zych
a8f0122041 docs(todos): close journal-author-profile-fields; reload-on-deploy progress from Phase 19.4.1 2026-10-20 19:28:17 +02:00
Jakub Zych
07f2fb2386 docs(19.4.1): record plan 04 progress
- 19.4.1 plans 4/5, plan 04 checked off
2026-10-20 18:59:01 +02:00
Jakub Zych
f4bebeb591 docs(19.4.1-04): complete presentations, phone remote and quizzes plan 2026-10-20 18:58:50 +02:00
Jakub Zych
cba0a98326 docs(19.4.1): record plan 03 progress; the admin is public behind a login
- 19.4.1 plans 3/5, plan 03 checked off
- phase goal: the admin is at /smbackend, login required, credentials on request
2026-10-20 16:33:08 +02:00
Jakub Zych
4964d4d65b docs(19.4.1-03): complete accounts, tour, EN/PL, journal and contact plan 2026-10-20 16:32:54 +02:00
Jakub Zych
d04462a224 docs(19.4.1): record plan 02 progress 2026-10-20 14:42:14 +02:00
Jakub Zych
e2a1afdd06 docs(19.4.1-02): complete release and live tracer plan 2026-10-20 14:41:42 +02:00
Jakub Zych
cb0e287757 docs(19.4.1): record plan 01 progress 2026-10-20 11:43:55 +02:00
Jakub Zych
9db4f4d661 docs(19.4.1-01): complete roadmap and sales deck plan 2026-10-20 11:43:22 +02:00
e4ed78773e wip: phase 19.4.1 paused at plan 01 task 4/4 (deck review checkpoint) 2026-10-20 11:22:00 +02:00
31764c8d8c docs(19.4.1): record phase planned 2026-10-20 03:33:29 +02:00
2b5f0b2c92 docs(19.4.1): mark research open questions resolved 2026-10-20 03:32:45 +02:00
ae81df3f4e docs(19.4.1): create phase plan 2026-10-20 03:30:50 +02:00
8c01e41297 docs(quick-261020-42e): branded HTML error pages for browsers 2026-10-20 03:17:09 +02:00
a34c251b0b test(surf): cover error page negotiation, unchanged API bodies and overrides
Negotiation table (Sec-Fetch-Mode, X-Requested-With, Accept q values, the
32-range cap, /api, /_ and admin paths), byte equality with the
http.error_pages.enabled false router for curl, fetch, XHR and JSON
clients, page content and headers for every covered status, details
gating and escaping, renderer override and fallbacks, the admin prefix
and the uploads route.
2026-10-20 03:15:26 +02:00
b1236cbfd4 feat(surf): branded HTML error pages for browser navigations
A browser navigation (Sec-Fetch-Mode navigate, or GET/HEAD without it; no
X-Requested-With; Accept naming text/html above every JSON type; not /api,
/_<name> or the admin prefix) that hits a framework-generated 404, 405 or
500 gets a self-contained SummerCMS page: unmatched routes and wrong
methods at the ServeMux, failed Where/WhereIn constraints, overlap-family
misses, the unpublished uploads route and recovered panics. Every other
request keeps the exact stdlib text, wire's opaque JSON 500 or the bare
raw-group 500.

Details (method, path, X-Request-Id) only with app.debug or outside
production. Applications replace the page with a published
surf.ErrorPageRenderer; http.error_pages.enabled false turns it off.
2026-10-20 03:12:25 +02:00
7c2b7fcb79 docs(todo): branded error pages for browsers 2026-10-20 02:54:51 +02:00
7d62b90775 docs(19.4.1): record deck, contact, repo and plan decisions (D-20..D-23) 2026-10-20 02:45:43 +02:00
1200346bdd docs(phase-19.4.1): add research and validation strategy 2026-10-20 02:42:14 +02:00
741def2ceb docs(19.4.1): add pxpx cooperation slide to the roadmap deck (D-19) 2026-10-20 02:40:37 +02:00
f3e0b65a81 docs(state): record phase 19.4.1 context session 2026-10-20 02:18:02 +02:00
3e3f5b95c5 docs(19.4.1): capture phase context 2026-10-20 02:18:01 +02:00
bef6bf2de6 docs: insert phase 19.4.1, early public demo on demo.summercms.io 2026-10-20 01:55:23 +02:00
dd047ebb1c docs(19.5): create phase plan v0.3.0 2026-10-20 01:08:01 +02:00
2eecfb8197 docs(quick-261020-13e): admin image preview fallback 2026-10-20 01:07:07 +02:00
1ab7db428a chore(quick-261020-13e): rebuild embedded admin dist
Rebuilt modules/boardwalk/dist with the public image preview fallback.
2026-10-20 01:05:42 +02:00
1806e5a36d fix(admin): preview public images through the admin thumb route when their URL fails
When a public image's thumb_url or url fails to load, the fileupload
field fetches its preview once through the authenticated thumb route
(session key in the header) and shows it from an object URL, revoked
when the item is forgotten and on unmount. The preview is reported as
unavailable only when that fetch or the object-URL image fails too.
Protected fields behave as before.
2026-10-20 01:05:42 +02:00
e4302bf60b fix(cabana): serve public image thumbnails on the admin thumb routes
The record and relation-child thumb routes now also serve the thumbnail
of a public JPEG, PNG, GIF or WebP file, under the same record or
pending-session scope and D-10 headers as a protected one, so the admin
can preview a public image whose public URL does not load. The download
routes still answer 404 for every public file, and a public non-image
thumb stays 404.

TestPublicImageThumb covers owner, foreign and hidden records, image
types, a public row under a protected field, another admin's pending
upload and the relation-child route.
2026-10-20 01:05:42 +02:00
5978998ea6 docs(19.4): complete phase, OIDC provider on wristband 2026-10-20 00:53:34 +02:00
76c4343299 test(19.4): record the user's push approval in UAT 2026-10-20 00:51:46 +02:00
362923cf5b docs(19.4): re-verify phase after the additivity check fix 2026-10-20 00:51:46 +02:00
ba5f7a6d1f docs(phase-19.4): add security threat verification 2026-10-20 00:38:40 +02:00
8c202a25fe docs(phase-19.4): update validation strategy 2026-10-20 00:37:51 +02:00
d9f7bfa6d1 test(19.4): gate additivity stage accepts both pre-phase user plugin commits
The userplugin stage compared against c077029 only; the merge of
origin/master brought in 24b16b1's pre-phase console signature change.
A declaration now counts as removed only when removed against every base.
2026-10-20 00:33:15 +02:00
ee22bcd139 docs(19.5): pattern map and post-research decisions 2026-10-20 00:24:57 +02:00
ae113d2cff test(19.4): complete UAT - 3 passed, 0 issues 2026-10-20 00:23:50 +02:00
e9c98b0564 docs(19.5): research and validation strategy 2026-10-19 22:39:08 +02:00
a04fe6bf32 docs(19.4): coverage matrix passes the api-coverage lint 2026-10-19 22:17:12 +02:00
4d32d96395 test(19.4): persist human verification items as UAT 2026-10-19 22:14:39 +02:00
c86bcbf3be docs(19.4): phase verification report 2026-10-19 22:14:34 +02:00
9066feb609 docs(19.4): record code review disposition 2026-10-19 22:05:27 +02:00
1453631f60 docs(19.4): add code review report 2026-10-19 22:05:21 +02:00
0cb5be3bbe docs(19.4-04): record plan state and roadmap progress 2026-10-19 21:51:49 +02:00
0f74b3b343 docs(19.4-04): complete unit tests, PHP method map and phase gate plan 2026-10-19 21:51:05 +02:00
86bd5c4d08 test(19.4-04): one sm-user-plugin test name per line in the gate 2026-10-19 21:46:45 +02:00
31cca1a491 docs(19.4): validation map filled, Nyquist compliant
Every task of plans 01-04 with its command and status; Wave 0 done; the
parity row stays deferred to the WavePath cutover (D-14 amended).
2026-10-19 21:45:29 +02:00
533d1a9ae1 test(19.4-04): gate requires the sm-user-plugin additions' tests
TestEndRequestSession joins the userplugin stage; TestRequestUser,
TestAvatarURL and TestDeactivatingEvent the docker stage. --all is green
on a Docker host (parity NOT RUN, deferred).
2026-10-19 21:45:21 +02:00
29b3a3a0ea test(19.4-04): gate requires the PHP method map and the plugin internals
TestPHPMethodMap, the zero-edit port and the Docker-free internals join
the plugin stage, the Postgres internals the docker stage; the plugin
stage points SUMMERCMS_ROOT and USER_PLUGIN at this run's checkouts.
2026-10-19 21:34:43 +02:00
e1696beb80 test(19.4-04): gate requires the plugin's PHP feature and security ports
The docker stage now requires the Postgres ports of the PHP feature and
security suites and TestConsentRedirectMode by name.
2026-10-19 21:18:32 +02:00
dd167466d2 test(19.4-04): unit tests for wristband's OIDC flavour
- PHP protocol cases, one subtest per PHP method: TestPKCEVerifier,
  TestRedirectURIMatch, TestTokenIssuer, TestAuthCodeLifecycle,
  TestPKCEAndReplay, TestConsentCSRF (cases 1-5)
- Go-only behaviour: discovery bytes, JWKS shapes, PEM parsing, ES256 and
  mixed rings, validation order, repeated parameters, PHP encoding,
  resume, switch account, JSON consent, client authentication, uniform
  userinfo 401, pairwise subjects, opt-in refresh, kind isolation,
  flavour dispatch, SetOIDCBackend checks, MCP refuses openid
- every name required by the gate's go stage
2026-10-19 21:05:21 +02:00