Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 10:32
9129dd8

loopcoder v0.7.0

v0.7.0 moves loopcoder's local runtime from repo-only files toward a
machine-local runtime model while preserving the local-only evidence boundary.
The release was published on 2026-07-11 with signed assets for v0.7.0,
verified checksums, passing release smoke, and a completed GO go/no-go report.

Highlights

  • Machine-local runtime storage: project identity, imported run records, and
    report query data are backed by $LOOPCODER_HOME/data/loopcoder.db.
  • Project registry: loopcoder projects register|show|list|remove manages
    stable project identities across multiple local checkouts without deleting run
    history.
  • Explicit local-state migration: loopcoder migrate local-state --repo . --dry-run previews v0.6.x repo-local .loopcoder/ imports; the non-dry-run
    path imports attempts, events, reports, recovery briefs, and relay records
    without deleting source files.
  • Provider compatibility visibility: doctor --format json exposes the
    host profile and provider_compatibility[] matrix so supported,
    experimental, and unsupported worker/verifier/nested modes are auditable.
  • Nested run observability: status --format json and
    report --run <id> --format json include a run_tree object for parent and
    child runs.
  • Self-bootstrap acceptance: scripts/self-bootstrap-smoke.ps1 verifies the
    loopcoder checkout, registry, database location, provider compatibility
    visibility, and parent/child run-tree JSON as part of the release gate.
  • Release-gated publication: v0.7.0 assets are staged in a draft release,
    smoked on Ubuntu, macOS, and Windows, and published only after the
    release-publication environment approval.

Added

  • loopcoder projects register|list|show|remove for the machine-local project
    registry.
  • loopcoder migrate local-state for explicit v0.6.x repo-local state import.
  • loopcoder nested run for bounded v1 child-plan execution.
  • status --format json and report --run <id> --format json run-tree
    observability.
  • Provider/host compatibility diagnostics in doctor --format json.
  • Unix-like owner-only permissions for $LOOPCODER_HOME, data/, the SQLite
    database, and SQLite sidecars.

Changed

  • New runtime indexes for registered projects move to
    $LOOPCODER_HOME/data/loopcoder.db; repo-local .loopcoder/ remains
    readable compatibility state during migration.
  • doctor --fix can repair Unix storage modes and eligible local compatibility
    surfaces, but stays local and explicit.
  • Default reporter text output is the compact receipt. Use --verbose for
    canonical local records and --format json for machine-readable output.
  • Release automation creates a draft release before platform smoke and leaves a
    failed candidate as draft evidence instead of publishing it.

Fixed

  • Git remote credentials are sanitized before registry persistence or output.
  • Project identity comparison handles macOS alias/canonical path differences.
  • Nested child run IDs, terminal mirror events, required skipped children, and
    project-list JSON stability were corrected before the release gate.
  • Release smoke handles multi-line PowerShell output when checking the
    already-latest upgrade path.

Compatibility

  • v0.7.0 is the stable install target published with signed assets on
    2026-07-11. Upgrade from v0.6.1 with loopcoder upgrade --version 0.7.0.
  • Existing .loopcoder/ repo-local files are not moved or deleted by upgrade
    or migration. They remain a compatibility fallback during the transition.
  • The SQLite database is machine-local, not a cloud sync mechanism and not a
    repository-visible artifact.
  • audit --format both is removed. Use --format text or --format json.
  • Windows does not enforce owner-only DACL hardening for v0.7.0 storage paths;
    doctor reports that limitation explicitly.

Upgrade

Upgrade from the customer-ready v0.6.1 bridge:

loopcoder upgrade --version 0.7.0
loopcoder version
loopcoder skill install --repo .
loopcoder projects register --repo .
loopcoder migrate local-state --repo . --dry-run
loopcoder doctor --repo . --format json

Run the non-dry-run migration only after reviewing the dry-run output:

loopcoder migrate local-state --repo .

The migration copies compatible local records into the machine-local store. It
does not delete repo-local .loopcoder/ history, edit tracked files, mutate
GitHub, flush relay records, or choose providers.

Backup and Rollback

Back up v0.7.0 local runtime state by copying
$LOOPCODER_HOME/data/loopcoder.db plus $LOOPCODER_HOME/projects/,
$LOOPCODER_HOME/logs/, and $LOOPCODER_HOME/tmp/ when those directories are
present and no loopcoder command is running.

Rollback is binary selection plus local-state retention:

loopcoder upgrade --version 0.6.1
loopcoder version
loopcoder skill install --repo .
loopcoder doctor --repo .

Keep or back up $LOOPCODER_HOME before deleting anything. Do not delete
repo-local .loopcoder/ history unless an operator explicitly chooses to; it
is the compatibility fallback for pre-v0.7.0 local records.

Known Limitations

  • Nested orchestration is bounded and plan-driven. Provider-native sub-agent
    features are not authoritative orchestration and cannot create untracked
    children outside loopcoder.
  • test-subprocess is reserved for deterministic local and release smoke
    tests.
  • Windows storage ACL hardening remains a documented limitation for a later
    release.
  • Pre-existing flaky test #765 is not release-blocking and is tracked as a
    deferred test-only flake.

Release Verification

The release reached GO with these checks complete:

  • Release: https://github.com/jasonhnd/loopcoder/releases/tag/v0.7.0,
    published 2026-07-11T10:32:49Z, latest, 8 assets, draft=false,
    prerelease=false.
  • Tag/commit: v0.7.0 =
    9129dd80fb67d2c395269771d7de8643f2868578; binary version stamp verified:
    version=0.7.0 commit=9129dd80fb67d2c395269771d7de8643f2868578 go=go1.26.5.
  • Staged release run:
    https://github.com/jasonhnd/loopcoder/actions/runs/29148964764, with 6
    builds, sign, draft, native smoke ubuntu/macos/windows all success, and
    publish success after required-reviewer approval (jasonhnd).
  • Integrated main CI on the tagged SHA:
    https://github.com/jasonhnd/loopcoder/actions/runs/29148868926 (8/8
    success).
  • Independent public verification passed:
    scripts/release-smoke.ps1 -Version v0.7.0 -PreviousVersion 0.6.1, including
    the real v0.6.1 -> v0.7.0 upgrade, signed checksum verification against
    identity
    https://github.com/jasonhnd/loopcoder/.github/workflows/release.yml@refs/tags/v0.7.0,
    issuer https://token.actions.githubusercontent.com, and SHA256 match
    c510e709d8c95e442261990fd309228aa151ce0bb32b6a2026476685af3f61be.
  • Publication controls were applied and verified on 2026-07-11: main branch
    protection (8 required checks, strict, enforce_admins, 1 review) and
    release-publication required reviewer jasonhnd.

Notes

  • v0.7.0 is the published install target as of 2026-07-11.
  • Local-only report, relay, run, and database records remain local-only. Do not
    copy reporter blocks or raw local records into PR bodies, issue comments,
    merge messages, commits, examples, fixtures, or tracked docs.
  • Rollback is binary selection plus project-local cleanup: select a prior
    released binary such as v0.6.1, keep or back up $LOOPCODER_HOME, and leave
    repo-local .loopcoder/ history untouched unless an operator explicitly
    removes it.