Repository navigation
Docker-less development sandbox, current front-end libraries, and the hx-boost lifecycle graph fix - #180
Open
frousselet wants to merge 3 commits into
Open
Docker-less development sandbox, current front-end libraries, and the hx-boost lifecycle graph fix#180frousselet wants to merge 3 commits into
frousselet wants to merge 3 commits into
Conversation
scripts/bootstrap_dev.sh gives a throwaway Debian/Ubuntu machine the environment the Docker image carries : the apt packages the Dockerfile lists (gettext, libpq, and the Pango / Cairo stack WeasyPrint dlopens, without which every PDF report dies on a missing libgobject), a .venv with requirements.txt, an .env carrying a random SECRET_KEY, Redis, the mirrored front-end libraries and the compiled translation catalogs. It ends on a check that WeasyPrint, the Office writers and Redis all answer, so a half-provisioned sandbox fails here rather than three screens into the application. It installs an environment and nothing else : no migration, no data. The first-run onboarding screen owns database setup, and still does. SQLite (core.settings_local) by default; --with-postgres adds the server, the role and an empty database for full parity, and --with-chrome the browser the screenshot script drives. Outside compose nothing reads .env, so the script exports it for its own steps and overrides the "db" and "redis" host names, which resolve to nothing on a single machine. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ECharts 6.1.0 clears GHSA-fgmj-fm8m-jvvx, an XSS in the `lines` series tooltip. The dashboard only draws a sankey, so the sink was never reached, but the pin carried the advisory. Verified the chart still renders in both themes after the major bump. Two stale claims about the vendoring, both wrong since v0.36.0 moved the libraries in-instance: the registry docstring pointed at `vendor_assets --upgrade`, a flag the command never had (it is `--force`), and the sankey loader still said echarts came from a CDN. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both templates loaded the renderer as `<script src=lifecycle_graph.js>` and then used `CairnLifecycleGraph.ensureLibs` from the inline script right after. That ordering only holds on a full page load, where the parser blocks on the external file. Under an hx-boost swap htmx appends the external script asynchronously and runs the inline one immediately, so the inline code hit an undefined `CairnLifecycleGraph` : TypeError: Cannot read properties of undefined (reading 'ensureLibs') The detail page's stepper stayed blank and the lifecycle editor lost its graph and its steps/transitions tables until the user reloaded by hand. Both now go through `components/lifecycle_graph_lib.html`, which loads the renderer on demand and calls back once it is defined, the pattern the sankey and dependency graphs already use for their own libraries. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Owner
Author
|
Verification status for the branch as opened, no code change since:
Covers the |
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.
Summary
Three tooling and maintenance changes that stand on their own but share one branch: a one-command Docker-less development sandbox, the front-end library pins moved to their current releases (which clears an ECharts advisory), and a fix for lifecycle graphs that stayed blank under in-app navigation.
Related issue
None.
Type of change
Changes
scripts/bootstrap_dev.shprovisions a throwaway Debian or Ubuntu machine with the environment the Docker image carries: theaptpackages theDockerfilelists (including the Pango / Cairo stack WeasyPrint dlopens, without which every PDF report dies on a missinglibgobject), a.venvfromrequirements.txt, an.envwith a randomSECRET_KEY, Redis, the mirrored front-end libraries and the compiled translation catalogs. It ends on a check that WeasyPrint, the Office writers and Redis all answer, so a half-provisioned sandbox fails there rather than three screens into the application. It installs an environment and nothing else: no migration, no data, since the first-run onboarding screen owns database setup. SQLite by default;--with-postgresadds the server, the role and an empty database,--with-chromethe browser the screenshot script drives.core/dependencies.py, with their new Subresource-Integrity digests.components/lifecycle_graph_lib.html, which calls back onceCairnLifecycleGraphis defined. Both templates previously assumed the external<script>had already run, which only holds on a full page load: under anhx-boostswap htmx appends it asynchronously and runs the inline script immediately, so the inline code hitTypeError: Cannot read properties of undefined (reading 'ensureLibs')and the graph stayed blank until a manual reload.core/dependencies.pydocstring pointed atvendor_assets --upgrade, a flag the command never had (it is--force), and the sankey loader intemplates/home.htmlstill described ECharts as coming from a CDN, untrue since v0.36.0 vendored the libraries in-instance.README.mdanddocs/technical/installation.mddocument the sandbox script.Screenshots
No visual change: the lifecycle fix restores rendering that was already specified, and the ECharts major bump was checked to leave the dashboard sankey drawing identically in both themes. Nothing in the diff touches layout, palette or typography.
Checklist
pytestpassesruff checkpassesmcp/tools.py(accurate docstrings and parameter descriptions)api/(serializers, viewsets, routes under/api/v1/)_()/{% trans %}with French translations inlocale/fr/LC_MESSAGES/django.po(no duplicatemsgid;compilemessagespasses)README.mdupdated (features, MCP tools, tech stack, install) when behaviour changedCHANGELOG.mdupdated under## [Unreleased]docs/brand/brand-guidelines.md); no em dash charactersdocs/specs/updated in the same PRUnticked items and why: no test was added, since the branch is a shell script plus two template script-loading fixes, and the suite is unchanged (it runs green on this PR: Tests in 3m48s, Documentation in 35s). No MCP tool or REST endpoint, no new domain behaviour to expose. No mobile check, as no layout changed. No spec under
docs/specs/applies: the sandbox is documented indocs/technical/installation.md, and the lifecycle fix restores behaviour the spec already describes. No screenshot was captured, since no surface changed appearance.🤖 Generated with Claude Code
https://claude.ai/code/session_012AkKwXgtDpRAq55kvzU1Dc