Changelog

Copy Markdown

All notable changes to this project are documented here.

The format follows Keep a Changelog and the project adheres to Semantic Versioning, 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.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