Commit Graph

1007 Commits

Author SHA1 Message Date
Jakub Zych
cc7386d22e fix(14.3-01): ship http body limits in examples/hello
- add examples/hello/config/http.yaml so serve, route:list and
  TestTypedItemRoute work without a manual config step
- drop the matching setup step and known-issue notes from README.md and
  docs/setup/installation.md
2026-10-08 11:40:20 +02:00
Jakub Zych
c33ebf3b95 feat(14.3-01): detect the framework checkout and guard summer new targets
- resolve the framework from --framework, then a sibling summercms or
  summercms.go checkout, then the binary's own source tree, each accepted
  only when its go.mod declares the framework module
- refuse a missing parent and a target inside the framework checkout
- remove the half-written app when any step fails
- add --no-plugin for an app with no starter plugin
2026-10-08 11:40:20 +02:00
Jakub Zych
7bc955a0c2 feat(14.3-01): add summer new with a starter route and relative go.work
- build.NewApp writes sm-<name>-app: go.mod with a relative framework
  replace, go.work, summer.yaml, config/ and a starter plugin
- make:plugin gains an opt-in starter route (GET /{$}) in the same
  routes.go template; plain make:plugin output is unchanged
- plugin:add writes go.work use paths relative to the go.work directory
- bonfire accepts new as a bare tool command name
2026-10-08 11:37:53 +02:00
Jakub Zych
86fcd5d4fd docs(14.3): mark research open questions resolved 2026-10-08 01:17:06 +02:00
Jakub Zych
2f7d95626e docs(14.3): create phase plan 2026-10-08 01:15:04 +02:00
Jakub Zych
a2ec923439 docs(phase-14.3): add validation strategy and post-research decisions 2026-10-08 00:48:45 +02:00
Jakub Zych
861e7efb4f docs(14.3): research phase domain 2026-10-08 00:47:41 +02:00
Jakub Zych
d94f804ddd docs(14.3): insert phase for summer new and summercms.io/new bootstrap, capture context 2026-10-08 00:30:35 +02:00
Jakub Zych
498f4b4f3a docs(14.2): create phase plan
Four plans: Go glue (dev seed, plugin-command DB, marker, framework
/storage mount, access log), dev-stack.sh and guard, Nuxt specs and
manual UAT, unit tests and check-phase14.2.sh. Adds D-23 (Centrifugo
collection/wishlist namespaces) and resolves research open questions.
2026-10-07 21:26:08 +02:00
Jakub Zych
05349d4b6d docs(14.2): record planning checkpoint decisions D-18..D-22 2026-10-07 20:40:21 +02:00
Jakub Zych
29a5fc1608 docs(phase-14.2): add validation strategy 2026-10-07 20:16:55 +02:00
Jakub Zych
fa047559cf docs(14.2): research phase domain 2026-10-07 20:16:10 +02:00
Jakub Zych
5429d46751 docs: capture exploration — core plugin port inventory, Horoskopia and Wavepath seeds 2026-10-07 20:10:28 +02:00
Jakub Zych
b3ca53cbc1 docs(roadmap): add phases 17, 18, 19 and 19.1 for core plugin ports 2026-10-07 20:10:27 +02:00
Jakub Zych
19fffd34d1 docs(state): record phase 14.2 context session 2026-10-07 19:58:22 +02:00
Jakub Zych
286603db8d docs(14.2): capture phase context 2026-10-07 19:58:21 +02:00
Jakub Zych
c972ebd0cf docs(state): record phase 16 context session 2026-10-07 19:54:00 +02:00
Jakub Zych
ece31c3426 docs(16): capture phase context 2026-10-07 19:53:58 +02:00
Jakub Zych
40a2a6584c docs(quick-261007-qgx): record heading from translatable fields v0.1.12 2026-10-07 19:07:34 +02:00
Jakub Zych
b6b194e5eb fix(boardwalk): rebuild embedded admin shell 2026-10-07 19:07:25 +02:00
Jakub Zych
a714bb4629 fix(admin): name records by translatable (mltext) fields
The record heading, breadcrumb crumb and document title took the first
plain text field only, so records named by an mltext field fell back to
the generic update message. A shared recordDisplayName helper now takes
the first text or ML field and reads its default locale, then the first
non-empty one.
2026-10-07 19:05:47 +02:00
Jakub Zych
7554241e9d docs(planning): log to-many list column fix v0.1.11 2026-10-07 18:43:18 +02:00
Jakub Zych
fa25b4e000 fix(cabana): show to-many relation list columns joined with commas 2026-10-07 18:43:17 +02:00
Jakub Zych
b4cc6f88e4 docs: capture todo - Translate Messages as a Nuxt i18n JSON editor v0.1.10 2026-10-07 18:32:01 +02:00
Jakub Zych
52eef9b43b docs(quick-261007-p4y): toggle sizing and settings controller links 2026-10-07 18:28:54 +02:00
Jakub Zych
0b09acdb0c feat(admin): open controller-link settings entries from the settings index
A settings entry with a controller opens that controller's route from
its card (settingsPath); singleton cards still open /settings/<code>.
On a linked controller with no navigation entry of its own the rail
marks Settings current, the breadcrumbs read Settings > entry label
(plus the record title on record and create routes) and the page title
uses the entry label. The settings docs describe the admin behaviour;
the embedded admin shell is rebuilt.
2026-10-07 18:24:54 +02:00
Jakub Zych
4a9b0896b1 feat(cabana): settings entries that link to an admin controller
pact.SettingsItem gains an additive Controller field, the equivalent of a
WinterCMS registerSettings 'url' => Backend::url(...) entry. A link entry
declares no Model, Form or NewModel and needs no AdminFS; start-up fails
when it combines Controller with a singleton form or a model, or names an
unregistered controller. Settings codes stay one namespace.

GET /settings lists a link entry with its controller only when the
principal passes the item's permissions and may open the controller.
Registry.Setting never returns a link entry, so the singleton settings
endpoints answer 404 for its code. SettingsEntry carries controller,
empty for singletons; the OpenAPI document, generated SPA types and
settings fixture follow, and the pact and cabana READMEs and the
settings docs describe the link.
2026-10-07 18:22:01 +02:00
Jakub Zych
b040ee3a74 fix(admin): size the switch toggle in pixels at the 14px root
The admin sets the html font size to 14px, so the rem utilities w-11 and
size-5 shrank the track to 38.5px and the knob to 17.5px against the
fixed 26px height and 18px travel. Use w-[44px] and size-[20px] so the
knob sits in a symmetric 3px inset at both ends. Rebuild the embedded
admin shell.
2026-10-07 18:15:41 +02:00
Jakub Zych
a586357a34 fix(boardwalk): rebuild embedded admin shell v0.1.9 2026-10-07 10:39:22 +02:00
Jakub Zych
5707f97089 fix(admin): add favicon and page-aware titles 2026-10-07 10:39:22 +02:00
Jakub Zych
9b3e630b6b fix(admin): fit long plugin labels in rail 2026-10-07 10:39:22 +02:00
Jakub Zych
efcef5d501 docs(planning): record embedded admin release gate 2026-10-07 10:39:22 +02:00
Jakub Zych
f15b38e2ff fix(boardwalk): rebuild embedded admin navigation v0.1.8 2026-10-07 01:02:11 +02:00
Jakub Zych
840af3e922 fix: give long plugin labels more room v0.1.7 2026-10-07 00:07:49 +02:00
Jakub Zych
6d2e3ba8bb docs(planning): log default icon quick fix 2026-10-07 00:07:49 +02:00
Jakub Zych
4a94380b5f fix: use sun as default admin icon 2026-10-06 23:58:44 +02:00
Jakub Zych
9fa714ff17 Add temp to .gitignore 2026-10-06 22:32:36 +02:00
Jakub Zych
4abac02d2d docs(planning): log planning cleanup 2026-10-06 22:31:49 +02:00
Jakub Zych
c05ad09dc2 docs(planning): commit accumulated workflow artifacts 2026-10-06 22:31:37 +02:00
Jakub Zych
fdee6b626e docs(quick-261006-tnp): add mltextarea field type v0.1.6 2026-10-06 21:38:08 +02:00
Jakub Zych
aa3a7c2e90 docs(cabana): document mltextarea field type
- forms.md: field-types row, ML section and example, lift paragraph,
  preset refusal
- admin-controllers.md and the cabana README name mltextarea
2026-10-06 21:37:08 +02:00
Jakub Zych
a913eec50f feat(admin): render mltextarea fields per locale
- MLField.vue is the one locale-switching wrapper; MLTextField,
  MLMarkdownField and the new MLTextareaField are shells around it
- isMLFieldType replaces the inline ML type-name checks in formState,
  FormView and RelationChildModal
- register mltextarea as a group-labelled control; rebuild dist
2026-10-06 21:36:04 +02:00
Jakub Zych
3596df4ff5 feat(cabana): add mltextarea field type
- mltextarea compiles (with size), binds as a writable scalar and goes
  through the mltext lift, translation write and hydrate paths
- preset on or from an mltextarea field stays refused
- tests: compile, Postgres round trip over a nullable host column with
  multi-line text, invalid locale maps, preset refusals
2026-10-06 21:30:56 +02:00
Jakub Zych
673c6ca82c docs(quick-261006-t5r): preset on mltext fields 2026-10-06 21:21:15 +02:00
Jakub Zych
5932172148 docs(cabana): document preset on mltext fields
- schema_types.go and the form-schema swag description name text or mltext
- regenerated admin/openapi/admin.json and admin/src/api/schema.d.ts
- README and docs/backend/forms.md describe the per-locale rules
2026-10-06 21:20:25 +02:00
Jakub Zych
b5d850662c feat(admin): follow presets on mltext fields per locale
- formState: changedLocales and presetUpdates hold the preset-follow rules
  for text and mltext pairs
- FormView applies presetUpdates on create, tracks per-locale hand edits of
  ML fields and follows the active ML locale
- rebuilt modules/boardwalk/dist
2026-10-06 21:18:09 +02:00
Jakub Zych
7afad732c7 feat(cabana): accept preset on mltext fields
- compilePresetKey admits a text or mltext target
- checkPresets admits a text or mltext source
- TestPresetML pins every text/mltext pairing and the refusals
2026-10-06 21:09:48 +02:00
Jakub Zych
7e2b1a909b docs(quick-261006-sne): markdown preview via sanitized RenderMarkdown 2026-10-06 20:59:43 +02:00
Jakub Zych
27711b7c21 chore(scripts): allow the sanitized markdown preview binding in raw-HTML gates
- check-phase10, 12.1, 12.2 and 14.2.1 drop only the exact
  MarkdownField.vue line binding sanitizedHtml (server-rendered by
  cabana.RenderMarkdown); every other raw-HTML sink is still refused
2026-10-06 20:58:45 +02:00
Jakub Zych
a0116dfbb9 fix(admin): render markdown preview from server-sanitized HTML
- MarkdownField posts the source to POST /markdown/preview when Preview
  opens and again 300 ms after a change while open; stale answers dropped
- the pane binds only data.html of a 2xx answer; a refusal is a text notice
- mlmarkdown previews the active locale and follows a locale switch
- .summer-markdown style kit restores headings, lists, code and tables
- vitest coverage, forms.md and rebuilt modules/boardwalk/dist
2026-10-06 20:57:51 +02:00