docs: add warm dev loop proposal (mxbuild --serve + reload_model)#1
Merged
Conversation
Draft proposal covering two scenarios: a Docker-free `mxcli dev` warm run loop to replace the docker inner loop, and an iPad split-screen preview workflow (Claude Code Web + browser, preview-before-commit). Built on measured mxbuild --serve incremental builds (~0.8s warm vs ~30-60s one-shot) and the runtime reload_model hot-reload primitive (~0.1s, no restart), with restartRequired branching page/microflow from entity/DDL changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Frame the iPad scenario as one leg of the full journey: Claude design prototype -> Mendix model via mxcli/MDL -> production security (ALTER PROJECT SECURITY LEVEL PRODUCTION, per-role grants) -> live warm-loop testing under real security, all on iPad without Studio Pro. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
…loop proposal Verified reload_model reloads model store + microflows + i18n only, not the datastorage/entity layer. The runtime reconciles its metamodel catalog (mendixsystem$entity/entityidentifier/attribute/association) at startup, so entity/view-entity/association changes need a restart. Confirmed directly: a view entity added via reload_model never appears in mendixsystem$entity. Adds the two-signal decision matrix (restartRequired x get_ddl_commands) and the key nuance that OQL view entities need restart WITHOUT DDL (query-time, not materialized). Notes the standalone boot lacks preview_execute_oql for functional OQL verification. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
…warm-loop proposal One static hub fronting many dynamic dev containers, verified via chisel: - chisel fan-in (one server, many clients on distinct ports; --authfile isolation) - why chisel works where ngrok/cloudflared/localtunnel didn't (go install past the gate, single-443 multiplex, system trust store already holds the MITM CA) - mxcli tunnel-hub (static) + mxcli dev --hub (self-registering dynamic side) - registration flow over chisel's authfile-reload + client-declared-remote primitives - admin overview page: fleet list + per-container pending-change summaries - Mendix fleet wrinkles (subdomain ApplicationRootUrl, cookie/DB isolation, slots) - reclassify coupling Option D (live tunnel) from "not recommended" to verified/preferred for the multi-container dev loop, artifact-push kept as durable fallback Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
…strap) How a user goes from a new Claude Code Web project to a running testable app: - entry points: mxcli new (new app) / clone + mxcli init (existing) - gap identified: init scaffolds a devcontainer + .claude tooling but no SessionStart hook; Claude Code Web reaps Postgres/JVM on idle, so it needs an idempotent `mxcli dev up` wired to SessionStart - dev up = setup mxcli/mxbuild/mxruntime (all exist) + Postgres + boot + serve - first-run vs warm cost table; heavy costs are one-time and image-cacheable - adds impl rows (dev up, init SessionStart hook) and an open question on image pre-baking + the SessionStart contract Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Restructure Provisioning into three entry points (prompt template primary for web/iPad, repo template, local CLI). Add the prompt-template subsection with: - the draft bootstrap prompt - rule 1: committing the config is mandatory (survives reaping; produces the repo-template end state without a maintained template) - rule 2: mxcli delivery is an environment-layer concern (github gate blocks release curl; go install works only for a public module) - proven via chisel Adds impl rows (new --emit-template, shipped prompt template, public-module/ env-preinstall delivery) and open question 12 on mxcli delivery into a gated empty repo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Keep one proposal but show how to ship it incrementally as four independent, value-ordered slices: (1) warm local loop, (2) provisioning, (3) single-app external preview, (4) tunnel hub. Recommends 1->2 first (solo dev, no external parts), 3 for single-app preview, 4 as a separately-reviewed scale-out. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Ran scripts/gen_proposals_readme.py. Indexes 5 previously-missing active proposals: mxcli_dev_warm_loop, check_mxbuild_gap_heuristics, ai_capability_dataset, architecture_graph_visualization, playwright_session_reuse. Side effect, flagged: PROPOSAL_marketplace_modules (status: shipping) and UNIFIED_SCHEMA_REGISTRY (status: descoped) drop from the index because their statuses are non-canonical; the generator only buckets canonical statuses. They remain on disk and re-index once their statuses are normalised (maintainer's call — not changed here). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Lint category-2 fix (maintainer-approved) so both re-appear in the index: - PROPOSAL_marketplace_modules: status shipping -> partial (active); tidy date - UNIFIED_SCHEMA_REGISTRY: status descoped -> abandoned; git mv to archive/ (terminal status belongs in archive/; retired into engalar's codec) Regenerated README via scripts/gen_proposals_readme.py: marketplace now under In Progress, UNIFIED under Archived, warm-loop still indexed. No proposals dropped from the index. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Document the first-part research (mxcli check improvements) as a proposal:
- where Mendix's diagnostics catalog lives (Mendix.Modeler.Texts.dll PO files)
- structure: CODE__SUMMARY msgids, {param} templates, severity via CE/CW/CI
prefix, LOCATION + MX_DOCS_CAT tags
- findings: 1318 codes (11.12.1), static-checkability tiering, mxcli already
reimplements ~77-81, mx check is same-floor as a build (Go check is the only
speedup)
- approach: versioned data asset, port by tier/frequency, harvest-against-oracle
- verbatim examples (small fair-use sample)
Commit scripts/extract-diagnostics-catalog.sh (the methodology). Its OUTPUT is
Mendix's proprietary corpus and is NOT committed (see IP open question).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
ako
pushed a commit
that referenced
this pull request
Jul 20, 2026
…lope is mxbuild-only End-to-end reproduction of the mendixlabs#600 stack (DW 3.10.0 over bundled 3.4.0 in an 11.12.0 project, DataGrid2 authored with mxcli, isolated from the Atlas template pages) with an order-independent, ID-masked before/after-update-widgets subtree diff proves the parser/template/augment approach is structurally capped below large version jumps: - Nested-column PropertyKey sets are already identical before/after (augment adds every new 3.10.0 key correctly). - Residual drift is dominated by fields ABSENT from the widget XML source: AllowUpload (x105), DesignProperties, LabelTemplate, and a mxbuild-COMPUTED Required (XML declares 3 required="true"; mxbuild emits 54). - update-widgets on the same copy takes the grid CE0463 -> 0. Since these fields are not derivable from the .mpk, no augment (including the proposed full-ValueType path a) can reproduce a version-faithful WidgetType. A speculative reconcileValueTypeSchema was implemented and reverted (setting Required from the XML attr would mis-set the 51 computed keys to false). Revised path forward: delegate the envelope to mxbuild's own update-widgets made v2-safe (adopt mendixlabs PR mendixlabs#764), keep the moderate-drift augment as-is. Records the rejected approach inline in augment.go and updates the proposal Open Question #1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
ako
pushed a commit
that referenced
this pull request
Jul 20, 2026
…LVED via editorConfig extractor Updates Open Question #1 to record the landed outcome (was still framing the instance last-mile as needing v2-safe update-widgets / a goja spike): - The static editorConfig.js extractor (4b8c4f5) + selection-value fix (666a65b) close the DataGrid2 CE0463 natively in mxcli — 0 errors on the mendixlabs#600 stack (11.12.0 + DW 3.10.0), minimal and full, no bundled regression. No mxbuild/ update-widgets dependency needed for DataGrid2. - Phase 2 (458c52a): extraction moved into .def.json generation; rules wired into check as the config-aware MDL-WIDGET10 warning. - Marks paths (c) update-widgets and (d) goja as superseded (c kept as fallback for widgets the static extractor can't fully lift); records coverage (9/28 DataGrid hide-calls) and the JS-AST / LLM-property-card follow-ups. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft proposal covering two scenarios: a Docker-free
mxcli devwarm runloop to replace the docker inner loop, and an iPad split-screen preview
workflow (Claude Code Web + browser, preview-before-commit). Built on
measured mxbuild --serve incremental builds (~0.8s warm vs ~30-60s
one-shot) and the runtime reload_model hot-reload primitive (~0.1s, no
restart), with restartRequired branching page/microflow from entity/DDL
changes.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4