Packages

Scaffolder for Elixir/Phoenix projects with a Svelte 5 UI layer.

Current section

Files

Jump to
svelixir CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), with
one project rule layered on top: **no major bump before `1.0.0`**. Pre-1.0 a `feat`
is the largest bump (minor); the first `1.0.0` is a deliberate milestone decision,
never an automatic consequence of a commit.
This file is regenerated at milestones with `git cliff --tag "v$version" -o CHANGELOG.md`.
Between milestones the version in `VERSION` — bumped per commit by the `post-commit`
hook — is the source of truth.
## [0.61.2] — 2026-08-15
### Bug Fixes
- Stop filtered vendored modules rendering as dead links
## [0.61.1] — 2026-08-15
### Documentation
- Acknowledge the prior art and the vendored libraries
### Features
- Filter vendored modules out of the published docs
## [0.60.0] — 2026-08-15
### Bug Fixes
- Install dependencies into every mix.exs shape
- Give the meta project a database and prune crash dumps
- Stop a CI timeout and a mirrored crash dump failing the gate
- Give the node job its own tag and nothing else
### Chores
- Vendor sourceror for structural placement
### Documentation
- Design structural placement, the web layer and the recomposed base
- Add the three structural placement implementation plans
- Add the web layer and recomposition implementation plans
- Record the one-insertion-per-file limit and the real component name
### Features
- Read and patch a deps list in every shape mix accepts
- Add, replace and create aliases and project keys
- Record what a component changed in the target's mix.exs
- Splice a contribution above import_config
- Splice inside a config_env guard
- Replace one key of an existing statement
- Place a config contribution where the file allows
- Infer config placement from the observed hunk
- Append a supervision child structurally
- Apply a supervision child without a marker
- Place a supervision child instead of marking it
- Scaffold the web component from the api baseline
- Add the web component Vite and Svelte asset tree
- Add the web component Elixir layer
- Derive the web component from the api baseline
- Compose the web baseline from api plus the web component
### Refactoring
- Widen Deps into MixChanges over one parser
### Testing
- Compile the web component and run its own suite
- Build and test the web component assets
- Confirm the recomposition is invisible to consumers
## [0.43.0] — 2026-08-15
### Bug Fixes
- Broaden marker detection and document recording assumptions
- Pre-flight recording reads and document manifest boundaries
- Pin dprint plugins by sha256 checksum
- Record removed lines instead of discarding them
### Chores
- Adopt dprint and reformat markdown
### Documentation
- Retire deprecated scaffolder references and reframe CLAUDE.md
- Correct the lefthook snippet to match the real protect-master
- Record the substitution and templating engine design
- Add the substitution engine implementation plan
- Record the baseline per-file hash and snapshot design
- Add the baseline per-file hash implementation plan
- Align the baseline spec and plan with the shipped design
- Record the component capture and apply design
- Add the component derive implementation plan (1 of 2)
- Amend SDD 10 and align the spec and plan to the meta_ convention
- Add the component apply implementation plan (2 of 2)
- Record the component declaration and recording design
- Record the component declaration and recording plan
- Add the deletion representation design draft
- Accept the deletion design with the reviewed placement rules
### Features
- Convert project source to an EEx template and back
- Escape pre-existing EEx before substituting
- Match on segment boundaries, not prefixes
- Refuse binary input instead of raising in EEx
- Recompute derived manifest fields with record/1
- Build reproducible tar bytes with tar/1
- Select archive members and build the snapshot
- Add the mix svelixir.baseline.record task
- Record per-file hashes and name the drifting file
- Add the :manual ownership mode
- Read and write component.exs
- Compare a meta project against its baseline
- Classify hunks into contributes and manual
- Read added dependencies structurally
- Derive a component from an observed diff
- Derive meta_cache from a real raw project
- Record a context anchor for every hunk
- Resolve the APP path token against a target
- Apply owned files, contributed blocks and anchored hunks
- Apply a component and close the round trip
- Add the apply and check tasks
- Mint ISO8601 timestamps from the one exempt module
- Hash a file that is not the language its name promises
- Accept declared components in schema_version 2
- Record an applied component in fireside.exs
- Report a target that records nothing
- Force a file that removes lines to :manual
- Mark a removal with both halves in one region
- Add the :api preset and its template
- Accept :api as a recorded base
- Record the api generator baseline
### Refactoring
- One self-verifying archive per baseline project
- Record the archive sha in the manifest, not a sidecar
- Adopt the meta_ naming convention for placeholder-bearing projects
### Testing
- Assert the round trip over the whole phx.new baseline
- Cover both error returns and restore the 100% floor
- Cover the record task and restore the 100% floor
- Gate the two rulebooks against silent divergence
- Pin the rewritten-file defect end to end
## [0.11.0] — 2026-08-13
### Chores
- Gitignore dotenv files carrying live credentials
## [0.10.0] — 2026-08-13
### Bug Fixes
- Unblock the pipeline — hex metadata and an optional perimeter 2
- Run pre-push hooks on ref-only pushes
- Skip the perimeter 2 suite when perimeter 2 is absent
- Scrub the git and mix environment from fixture subprocesses
- Authenticate the perimeter 2 checkout with a scoped token
- Restore the sandbox env scrub and make it observable
- Check out perimeter 2 with a read-only deploy key
- Install phx_new in the quality job
### Chores
- Vendor simple_enum, typedstruct and vex
- Report files with no coverable lines as 100%
- Add understand-anything knowledge graph and onboarding guide
- Gitignore the local mise.toml tool pins
### Documentation
- Correct README against the vendored trees as they are
- Retire the three naming drifts and record the canonical names
- Record the real required check names and how to find them
- Drop the invalidation-trigger comments
### Features
- Bootstrap Svelixir project
- Add quality gates, git flow, and Svelixir.Target project seam
- Add literal-only deterministic .exs codec
- Model the scaffolder templates as a struct tree
- Assert the svelixir_new archive shape from the root suite
- Check in vanilla generator baselines with provenance and package leak guard
- Add comment-stripped extension-dispatched content hashing
- Read and validate svelixir.exs
- Read and write fireside.exs without compiling the target
### Refactoring
- Make Svelixir.Config the root and add both presets
- Move the version into a VERSION file
- Rename the :perimeter_2 tag to :archive
### Testing
- Assert both placeholders and compare the web baseline to fresh phx.new output
- Pin the .exs branch, the BOM placement and the sigil limitation
- Assert cross-layer bootstrap and F4 invariants; wire full CI
- Partition guarded from unguarded CI --include