Skip to content

Release v0.112.5

Choose a tag to compare

@DraconDev DraconDev released this 16 Jun 19:55
· 5168 commits to main since this release

Release v0.112.5 — 2026-06-16

Summary

This is a release hygiene + façade repo refinement release. It packages
the work from goals 4c2caf36 (Set A→B façade repo rename) and 98dfd198
(Set A deployment), plus the deep-untracked-subtrees fix from 662a6e15,
plus 11 other Unreleased entries that had accumulated since v0.112.4.

The most user-visible change is the Set B façade repo names:

  • DraconDev/dracon-sync-background-auto-commit-multi-remote (was
    dracon-sync-watch-debounce-commit-push-mirror)
  • DraconDev/dracon-system-disk-process-guard-doctor (was
    dracon-system-disk-zram-process-service-guard)
  • DraconDev/dracon-warden-secret-encrypt-age-git-filter (was
    dracon-warden-age-git-filter-secret-encrypt)

The new names are deliberately brutally descriptive so they're
self-explanatory on Codeberg/Forgejo (where descriptive names get upvotes and
free attention). They are also the canonical names in the
scripts/scaffold_feature_repos.py script, with the old short names kept
as --repo aliases for backwards compat.

A new scripts/regenerate_facade_repos.py script + a monorepo post-commit
hook now keep the 3 façade repos in sync with the monorepo's source files.
When the operator commits a change to dracon-sync/README.md (or any
utility's source), the hook regenerates the corresponding façade's README +
other scaffold files, commits them locally, and the daemon (dracon-sync)
auto-pushes the change to all 3 remotes (github, gitlab, codeberg).

The 3 façade repo clones live at /home/dracon/Dev/facade-repos/ (a path
the daemon already watches). They were added with origin as the GitHub
HTTPS remote + gitlab and codeberg as SSH remotes, matching the daemon's
multi-remote sync policy.

Audit findings (Part 1 of the goal)

The full audit (10 sub-areas) is in /tmp/audit-v1.0.1.md. Key findings:

  • All 3 Set B façade repos exist on all 4 remotes, 4-remote aligned
  • All 3 repos are public on all 3 third-party remotes
  • All 3 repos have the 7 expected files (README, LICENSE, SECURITY, etc.)
  • All 3 names pass --validate-name and --self-test
  • Bug fixed: GitHub descriptions didn't match GitLab + Codeberg (had Set A
    text); now all match
  • Bug fixed: the 3 façade repo clones were not in the daemon's watch
    list; now added at /home/dracon/Dev/facade-repos/
  • No stale references to old Set A names outside docs/design/github-feature-repos.md
    • CHANGELOG.md (intentional history)
  • Daemon healthy, 856 tests pass, 0 fail, 9 ignored

Version bumps

  • Root workspace: 0.112.40.112.5 (patch-level, doc/infra only)
  • dracon-sync: 0.1.50.1.6
  • dracon-system: 0.2.00.2.1
  • dracon-warden: 0.3.00.3.1

What's in the box (since v0.112.4)

The full [Unreleased] section (now [0.112.5]) includes 14+ goal entries
that accumulated since 2026-06-07. Major items:

  • Façade repo rename Set A → Set B (goals 98dfd198 + 4c2caf36)
  • Deep untracked subtrees not staged (goal 662a6e15): stage_existing_files
    now does full recursive walk instead of 1-level
  • PUSH_STUCK prevention (goal 87c1bf4d): sequential multi-remote push +
    per-remote force_push_when_behind = true config
  • Sequential push: multi_remote.rs switched from concurrent tokio::spawn
    to sequential for remote in sorted to eliminate race
  • Auto-sync hook: new scripts/regenerate_facade_repos.py + monorepo
    post-commit hook keeps the 3 façade repos in sync
  • Various dracon-system / dracon-warden hardening (binary passthrough,
    path-component matching, exact filename matching, etc.)

Verification

  • cargo build --release --locked: succeeds
  • cargo test --workspace --locked: 856 passed, 0 failed, 9 ignored
  • python3 scripts/scaffold_feature_repos.py --validate-name: passes
  • python3 scripts/scaffold_feature_repos.py --self-test: passes
  • python3 scripts/regenerate_facade_repos.py --dry-run: passes
  • 3 Set B façade repos: 4-remote aligned (da0dbf5 / b37781a / 8ceb070)
  • Monorepo: 4-remote aligned at release SHA
  • Daemon: 13 repos watched (was 13; +3 façade repos added but counted within)

Migration notes

  • If you cloned the old Set A repos (DraconDev/dracon-sync, etc.) on
    GitHub, the rename in place means the old URLs redirect to the new ones
    for a grace period. Update your bookmarks to the new long names.
  • The old short names still work as --repo aliases in the scaffold script
    for backwards compat.
  • The 3 new façade repos are added to the daemon's watch list automatically
    (via the path /home/dracon/Dev/facade-repos/ which is in watch_roots).
  • If you commit changes to a utility's source files, the post-commit hook
    fires automatically and the daemon pushes the regenerated façade content.
    No manual scaffold_feature_repos.py invocation needed.

What's next

  • Operator to decide if Set B names are final (vs further iteration)
  • Operator to decide on remaining Unreleased entries from previous goals
    (if any should be deferred to a different release)
  • The 3 façade repos will now stay in sync with the monorepo via the
    post-commit hook + daemon auto-push