Commit Graph

725 Commits

Author SHA1 Message Date
Jakub Zych
3cf2b38a8c docs(12-04): complete albums, search and lookups plan 2026-10-02 14:43:34 +02:00
Jakub Zych
44526f0bca docs: insert Phase 12.2 admin form fields with deferred binding (v0.1.1) 2026-10-02 14:36:41 +02:00
Jakub Zych
6649763590 chore(12-04): require every album broadcast golden to pass
All four goldens run through the album handlers now: no pending skip is expected
and the named check requires created and updated to pass.
2026-10-02 14:30:13 +02:00
Jakub Zych
7ac6c05ab3 chore(12-04): expect only the updated broadcast golden to skip
The album store handler asserts the created golden now; updated stays pending
until the update handler lands.
2026-10-02 14:01:32 +02:00
Jakub Zych
18ead668ec docs(12-03): update state and roadmap progress after plan 12-03 2026-10-02 13:18:30 +02:00
Jakub Zych
6f37a3782f docs(12-03): complete household invitations and members plan 2026-10-02 13:17:47 +02:00
Jakub Zych
62863cf0ae docs(12-02): update state and roadmap progress after plan 12-02 2026-10-02 12:39:18 +02:00
Jakub Zych
85a45dbc80 docs(12-02): complete collections, me/context and share link plan 2026-10-02 12:38:40 +02:00
Jakub Zych
d7388af564 docs(12-01): update state and roadmap progress after plan 12-01 2026-10-02 11:50:43 +02:00
Jakub Zych
ce72e60491 docs(12-01): complete framework gaps and user groups plan 2026-10-02 11:50:05 +02:00
Jakub Zych
1bdbdf041b docs(12-01): reword the Phase 12-14 scope and requirements
- Phase 12 criteria 1-3 and goal: realtime/channels, owner-only share,
  cover import, re-gated search total (D-03, D-04, D-06, D-19, D-20)
- reservations and anonymous public-token views move to Phase 13
  (API-03, API-07); the Discogs cover-price route to Phase 14 (INTG-01)
- the folded lagoon-validate-min-message todo moves to done
2026-10-02 11:44:52 +02:00
Jakub Zych
3ae49bb6f4 feat(12-01): report the search engine's found count and field weights
- optional beachcomber.PageSearcher returns a page of candidate ids plus
  the engine's found count; beachcomber.SearchPage falls back to
  SearchIDs for engines without it, so Engine is unchanged
- Query.QueryByWeights is sent to Typesense as query_by_weights; a
  mismatched weight list or a page above typesense.MaxPerPage (250) is
  refused before any request
2026-10-02 11:37:01 +02:00
Jakub Zych
e06e0cc8bf feat(12-01): record multipart uploads and match Winter upload URLs
- attach.PublicURL and (*File).URL build Winter File::getPath() URLs; the
  thumbnailer decodes webp via golang.org/x/image v0.46.0 and checks the
  image size from the header before decoding
- tide requests carry multipart parts (files beside the fixture pinned by
  sha256) encoded with the fixed MultipartBoundary, so PHP and Go receive
  byte-identical bodies
- tide masks the random partition, disk name and file id of url/thumb_url
  upload URLs while still diffing prefix, size, mode and extension, and
  NormalizePublications masks Carbon dates in the published album
2026-10-02 11:33:42 +02:00
Jakub Zych
f9b7f2ea33 feat(12-01): add Laravel request validation to lagoon
- lagoon.ValidateRequest ports Laravel 9 request validation: wildcard
  expansion, implicit-rule stop, bail, sometimes/nullable/blank skipping,
  size messages split by type and character-counted string lengths
- ParseRules, In, CustomRule, UploadedFile and ErrorKeys for rule tables
- pl/en lagoon::validation catalogs ported verbatim from WinterCMS
- lagoon.Validate answers a numeric range failure with the bound that
  failed (min, max or numeric between) instead of always max
2026-10-02 11:25:36 +02:00
Jakub Zych
cfe568a214 docs(quick-261002-esz): extract golem15.user into its own repo sm-user-plugin 2026-10-02 11:04:00 +02:00
Jakub Zych
947aabee93 docs: move golem15.user to sm-user-plugin and supersede the Phase 1 extraction deferral
- new note .planning/notes/core-plugins-own-repos.md: shared core plugins live in sm-<name>-plugin repos mounted as submodules
- 01-CONTEXT deferral points to the note; PROJECT constraint and Key Decisions row
- ROADMAP Phase 12 repos and the 12-01 entry, and Phase 12 plans 12-01, 12-02, 12-05 name sm-user-plugin and the submodule commit workflow
2026-10-02 11:02:07 +02:00
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