Skip to content

Fix: DO-0 track frontend assets and build freshness - #693

Draft
krzysztof-causalens wants to merge 8 commits into
codex/dara-js-workspacesfrom
codex/dara-assets-freshness
Draft

krzysztof-causalens wants to merge 8 commits into
codex/dara-js-workspacesfrom
codex/dara-assets-freshness

Conversation

@krzysztof-causalens

@krzysztof-causalens krzysztof-causalens commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Motivation and Context

Fifth slice of #623, stacked on #692. Static assets must update during development, and production artifacts must be detected as stale when their inputs change, including inherited configuration and sibling workspace sources. Interrupted publication keeps recoverable builds.

Implementation Description

The dev runner routes registered static changes through project revalidation, gives configuration changes precedence and reports collisions with Vite-emitted files. Static responses use mrmime for MIME lookup.

Build markers record workspace source inventories, effective TypeScript configuration reads, Vite configuration imports, dependency settings and patches, and declared plugin inputs. Env files are runtime configuration and never make a build stale. Python startup parses the marker and compares recorded inputs, including partial workspace checkouts, without invoking JavaScript tools. A later build validates abandoned staging and backup markers before recovering or cleaning them.

Plugins declare additional files, directories and environment names through dara() options; undeclared reads are outside the freshness guarantee. The static assets guide documents static/, add_static_folder, live updates, collisions and production deployment.

Any new dependencies Introduced

mrmime for filename-to-MIME lookup.

How Has This Been Tested?

  • Full repository build, Python and JavaScript suites, lint and format checks. Regressions cover source additions and deletions, partial checkouts, asset target changes, optional configs, TypeScript inheritance, patches, symlink inventories, static collisions and interrupted publication.
  • The demo app's marker rejects source edits, added files and changed static targets. Headless Chrome rendered Bokeh and Plotly in development, production and an artifact-only copy with an empty PATH; a new static file appeared live and a namespace collision blocked and then restored the frontend.

PR Checklist:

  • I have implemented all requirements? (see JIRA, project documentation).
  • I am not affecting someone else's work, If I am, they are included as a reviewer.
  • I have added relevant tests (unit, integration or regression).
  • I have added comments to all the bits that are hard to follow.
  • I have added/updated Documentation.
  • I have updated the appropriate changelog with a line for my changes.

@krzysztof-causalens krzysztof-causalens changed the title fix: track frontend assets and build freshness Fix: DO-0 track frontend assets and build freshness Sep 8, 2026
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from fea24fc to c154de6 Compare September 9, 2026 01:43
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch 3 times, most recently from fecf06b to a82dff2 Compare September 9, 2026 12:11
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from a82dff2 to 0deafac Compare September 9, 2026 12:18
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch 2 times, most recently from 604da16 to c225f30 Compare September 9, 2026 12:57
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from c225f30 to fd0e132 Compare September 9, 2026 13:36
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from fd0e132 to 606139d Compare September 9, 2026 13:53
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from 606139d to 3de6791 Compare September 9, 2026 14:24
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch 2 times, most recently from 7dbfa1b to 1dc260a Compare September 9, 2026 15:17
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from 1dc260a to c5937dc Compare September 9, 2026 16:05
@krzysztof-causalens krzysztof-causalens self-assigned this Sep 9, 2026
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from 4649c2c to ddaa4aa Compare September 9, 2026 22:04
@krzysztof-causalens
krzysztof-causalens force-pushed the codex/dara-assets-freshness branch from 67a1cf1 to 5f6fa04 Compare September 14, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant