Commit Graph

947 Commits

Author SHA1 Message Date
Jakub Zych
b697a677e6 docs(15-04): complete journal tests, gate, and ASVS review plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 19:23:19 +02:00
Jakub Zych
7307b36baa test(15-04): add fail-closed Phase 15 gate and ASVS L1 review
scripts/check-phase15.sh --all refuses skip/no-tests/race/dirty PHP pin; the review closes T-15-01..15 and T-15-SC with executed TestNames.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 19:22:19 +02:00
Jakub Zych
05b77b7818 docs(15-03): summarize journal public API, writes, media, and Typesense gate
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 19:06:12 +02:00
Jakub Zych
db6243c8c2 docs(15-02): record journal admin plan progress in STATE and ROADMAP
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 18:49:33 +02:00
Jakub Zych
685837a3c8 docs(15-02): complete journal admin YAML and import/export plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 18:49:08 +02:00
Jakub Zych
8d7979f87e docs(15-01): record journal plan progress in STATE and ROADMAP
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 18:30:56 +02:00
Jakub Zych
90b946db40 docs(15-01): complete journal plugin clone and schema plan
Tasks completed: 3/3
- Clone plugin, translatable Post tracer, three-plugin host boot
- Categories, tags, pivots, settings, author slug
- en/pl phrasebooks, README, host CORS

SUMMARY: .planning/phases/15-journal-plugin/15-01-SUMMARY.md
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 18:30:20 +02:00
Jakub Zych
a28bb1e4ec docs(15): create phase plan 2026-10-06 18:02:17 +02:00
Jakub Zych
d9f0f47e47 docs(phase-15): add validation strategy 2026-10-06 17:31:45 +02:00
Jakub Zych
2cf28f72bf docs(15): add journal plugin research 2026-10-06 17:31:45 +02:00
Jakub Zych
a46f46b3ac test(14.2.1): persist human verification items as UAT 2026-10-06 16:40:27 +02:00
Jakub Zych
089bf73516 docs(14.2.1): re-verify after CR-01 and WR-02 gap closure
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 16:40:06 +02:00
Jakub Zych
19f2e27500 docs(14.2.1): record code review disposition after gap closure 2026-10-06 16:36:35 +02:00
Jakub Zych
5b1d8b01fb docs(14.2.1): code review after gap closure
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 16:36:03 +02:00
Jakub Zych
9a7c15608c docs(14.2.1-06): complete lift ML maps on relation-child saves plan
Record WR-02 close-out, D-06/D-17 coverage, and last-plan gate evidence for phase verification.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 16:30:03 +02:00
Jakub Zych
ef03016314 test(14.2.1-06): land remaining named tests and phase gate
WR-02 proofs and T-14.2.1-19..23 must fail the phase closed if hydration or child locale validation is removed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 16:28:29 +02:00
Jakub Zych
4e37d877f1 feat(14.2.1-06): hydrate relation-child update and show ML maps
UpdateChild and ShowChild now lift, apply, and hydrate nested locales the same way as host CRUD, so a child form keeps English on the column and Polish through the writer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:53:24 +02:00
Jakub Zych
88a3a88876 feat(14.2.1-06): persist nested ML maps on relation-child create
RelationService looks up TranslationWriter like CRUDService so CreateChild can lift locale maps before fillChild, write Polish after the child PK, and return a hydrated title map.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:51:38 +02:00
Jakub Zych
f4bea33faf docs(14.2.1-05): complete hydrate enabled locales on admin ML forms plan 2026-10-06 15:44:58 +02:00
Jakub Zych
424fe9ccc0 feat(14.2.1-05): cover mlmarkdown, child adopt, and regen admin artifacts
MLMarkdownField and relation-child forms share the enabled-locale
inject and adopt merge; OpenAPI, types, docs, and boardwalk dist match.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:41:46 +02:00
Jakub Zych
0f8d13738d feat(14.2.1-05): hydrate ML create/GET/save through TranslatedExact
Form schema meta lists enabled locales, Show/save expand mltext maps
without D-11 fallback, and the SPA seeds and adopt-merges every locale.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:37:00 +02:00
Jakub Zych
ed81f2a0c1 docs(14.2.1): create phase plan 2026-10-06 15:19:22 +02:00
Jakub Zych
249b4d10ca docs(14.2.1-04): complete translate tests, gate, and security review
Record the last-plan SUMMARY, closed high-threat review, validation sign-off, and 4/4 roadmap progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 14:23:06 +02:00
Jakub Zych
ba6e4369f6 test(14.2.1-04): add fail-closed check-phase14.2.1.sh
Require named PASS lines, real Postgres, sibling go -C, and a closed high-threat review before the phase gate can pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 14:21:56 +02:00
Jakub Zych
1bc6200dbd test(14.2.1-04): add ML, markdown, resolver, and SPA test matrices
Prove nested ML writes, unsafe markdown rejection, request-locale isolation, and generated FormView types.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 14:02:49 +02:00
Jakub Zych
c7e2e4b4ed docs(14.2.1-03): complete cabana ML fields and proof-host boot plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:30:18 +02:00
Jakub Zych
e3b3475b1c feat(14.2.1-03): document ML fields and regenerate admin artifacts
- Document markdown, mltext, and mlmarkdown plus TranslationWriter save semantics
- Extend the SPA registry tests and rebuild committed boardwalk dist

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:29:00 +02:00
Jakub Zych
a04116d41f feat(14.2.1-03): add markdown and multilingual cabana fields
Lift locale maps before ProjectWritableFields so a Journal-shaped save can persist the default host scalar and non-default locales through TranslationWriter without dropping nested JSON.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 12:32:54 +02:00
Jakub Zych
234111d245 docs(14.2.1-02): mark Translatable API plan complete in state and roadmap
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 12:24:01 +02:00
Jakub Zych
44a8cbf29d docs(14.2.1-02): complete Translatable API and Locales admin plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 12:23:39 +02:00
Jakub Zych
de202fcb03 docs(14.2.1-01): complete translate plugin repository and locale seam plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 11:56:36 +02:00
Jakub Zych
b2ce986604 feat(14.2.1-01): add optional surf LocaleResolver seam
Look up a backpack-published resolver so a compiled translate plugin can
strip an enabled URL prefix and write a validated locale onto context.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 11:54:00 +02:00
Jakub Zych
bd0a27f59f docs(14.2.1): lock Go tables to golem15_translate_*
Execute-phase Task 2 chose golem15-prefix over the researched winter_translate_* names so the plugin ships vendor tables; PHP winter names stay a later import mapping.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 11:36:28 +02:00
Jakub Zych
28bd45fa04 docs(14.2.1-01): record Task 1 sibling checkout setup
- Pause execution at the Winter table contract decision
- Note local plugin and proof-host work trees for resume

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 11:30:16 +02:00
Jakub Zych
e88007aa76 docs(quick-261006-eyj): widget field payload and data channel v0.1.5 2026-10-06 11:23:37 +02:00
Jakub Zych
f829d17dca docs(14.2.1): create phase plan 2026-10-06 11:22:45 +02:00
Jakub Zych
e723c391fb docs(cabana): widget element contract and payload fixture (quick-261006-eyj)
- acme-demo-lookup fixture is a reorder widget: a click reverses its items,
  sends the new id order as detail.payload and renders the returned items from
  the data attribute and the summer-result event with textContent, no HTTP
- partials-and-widgets gains a Widget element contract subsection listing the
  attributes the SPA sets and the summer-action / summer-result events
- cabana README names both events in the form widgets bullet
2026-10-06 11:18:03 +02:00
Jakub Zych
c6f68e4639 feat(admin): widget field payload and summer-result data channel (quick-261006-eyj)
- WidgetField posts the summer-action event's detail.payload as payload only
  when the detail carries one; a payload-less post body is unchanged
- after a successful action the response data is set on the element as the
  data attribute (removed when the answer has none) and announced with a
  summer-result event carrying {data, fill, message}; failures dispatch nothing
- WIDGET_RESULT_EVENT exported from formContext; unit tests for both directions
- modules/boardwalk/dist rebuilt
2026-10-06 11:16:46 +02:00
Jakub Zych
6af88f9df6 feat(cabana): widget action payload and data channel (quick-261006-eyj)
- pact.AdminActionInput.Payload (json.RawMessage) carries the widget's own
  JSON value untouched; pact.AdminActionResult.Data is passed through as data
- cabana decodes payload with a 64 KiB cap (422 on body), refuses it on the
  toolbar and record routes, and embeds Data once encoded with a 256 KiB cap
  (opaque 500 when larger or unencodable); fill stays filtered
- root .swaggo overrides json.RawMessage so swag keeps record_id and values;
  admin.json and schema.d.ts regenerated (payload?: unknown, data?: unknown)
- TestWidgetPayloadAndData covers pass-through, cap, refusal and data 500
- cabana and pact READMEs, partials-and-widgets and admin-spa docs updated
2026-10-06 11:13:16 +02:00
Jakub Zych
964145628a docs(14.2.1): add research and validation strategy 2026-10-06 10:57:17 +02:00
Jakub Zych
d2609e9499 docs(state): record phase 14.2.1 context session 2026-10-06 10:41:45 +02:00
Jakub Zych
6d2e5e6f4b docs(14.2.1): capture phase context 2026-10-06 10:41:43 +02:00
Jakub Zych
2449e36ef0 docs(state): record phase 15 context session 2026-10-06 01:29:02 +02:00
Jakub Zych
b1e101cdc0 docs(15): capture phase context 2026-10-06 01:28:58 +02:00
Jakub Zych
e18885fb14 docs(phase-14.1): sync machine state after complete
phase.complete marked 14.1 complete in state.json; keep it with the tracking files.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:49:53 +02:00
Jakub Zych
b439c8583a docs(phase-14.1): close 1 resolved todo
oauth-identities and /me now have a completed phase; the orphan-pending-routes todo is done.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:49:40 +02:00
Jakub Zych
9607796d8e docs(phase-14.1): complete phase execution
Corpus is 175/175/0. Tracking advances off 14.1; live Nuxt/MCP checks stay Phase 15.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:49:40 +02:00
Jakub Zych
eb84825724 docs(14.1): record code review and verification
WR-01 is fixed; WR-02 and the three info findings stay open. The phase
goal is 8/8 with corpus 175/175/0.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:48:08 +02:00
Jakub Zych
c7c796cb45 docs(14.1-02): complete OAuth identities unit-test plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:38:34 +02:00
Jakub Zych
0d1b5caf3d docs(14.1-01): complete OAuth identities and /me routes plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:25:29 +02:00