Skip to content

Releases: sivakoneti/10xdev-cli

tenx 0.27.3 — a dispatched worker can no longer hijack the host tool install

Choose a tag to compare

@sivakoneti sivakoneti released this 27 Sep 16:38

Worktree isolation covered the files a worker writes, not the host tool environment it can reach.

The incident

Dogfooding a live Herdr dispatch, a worker installed from inside .tenx/worktrees/SPC-037-T1, leaving an editable pointer at that worktree's src. tenx reconcile removed the worktree, and the operator's global tenx died with:

ModuleNotFoundError: No module named 'tenx'

The tool that should have reported the damage could not run to report it.

What ships

  • The brief forbids it. Every dispatched worker is now told the worktree
    is deleted at teardown, that any install pointing at it keeps pointing at a
    vanished path, and to verify with python3 -m tenx and
    python3 tests/smoke_test.py --module instead. An install requirement gets
    reported, not performed.
  • Dispatch records a snapshot. Every receipt carries the host install's
    resolved source path, captured before the worker runs.
  • Teardown checks. tenx reconcile and tenx abort verify the installed
    tenx command after removing the worktree and report the breakage with the
    recovery command. The merge still completes — repairing a host-level tool
    stays an explicit operator decision.
  • tenx doctor reports it when the running tenx resolves inside
    .tenx/worktrees/.

Why two signals

The snapshot comparison alone was not enough, and the first implementation
missed the real incident because of it: the snapshot only sees the interpreter
reconcile runs in, while the damage lands on whichever interpreter backs
the globally installed CLI. Teardown therefore also asks that command directly
whether the operator can still run tenx.

Verified

Against a faithful reproduction — an isolated venv whose install pointed at a
dispatch worktree, with the worktree then removed — tenx --version failed with
ModuleNotFoundError before the fix and the teardown reported it after, with
the merge still landing. 15 new smoke checks pass in both module and
install-path modes.

Upgrade with tenx update.

tenx 0.27.2 — fix `tenx update` for uv tool installs

Choose a tag to compare

@sivakoneti sivakoneti released this 27 Sep 16:27

Patch release. Found by dogfooding the self-update path on a real machine.

uv tool list reports the distribution name (tenx-cli) while the console scripts it exposes are tenx and 10x. tenx update ran uv tool upgrade tenx, so uv answered:

`tenx` is not installed; run `uv tool install tenx` to install

and the update exited 1. Every uv-tool user hit this on every version; the earlier update-channel fixes only exercised the --check path, never the upgrade path.

Upgrades now resolve the name uv actually tracks. Pinned by four checks including the negative case, so an unrelated uv tool is never claimed.

Upgrade with tenx update.

tenx 0.27.1 — fix red CI: re-pin the --no-focus check

Choose a tag to compare

@sivakoneti sivakoneti released this 27 Sep 16:24

Patch release. No runtime behavior change.

v0.27.0 shipped with red CI on Python 3.10/3.12/3.13. The SPC-035
--no-focus smoke check asked for --visual with multiplexer
auto-detection and expected success — which only held on a machine that
already had a multiplexer. That is precisely the silent headless downgrade
0.27.0 removed, so the old expectation was not preserved: the check now pins
what --no-focus actually controls, the projection plan, plus its
--focus counterpart.

Verified both smoke modes (module and clean install) with HERDR_ENV and
TMUX unset to reproduce the clean-runner environment, and again inside
Herdr. CI green on 3.10, 3.12, 3.13.

Upgrade from 0.27.0 with tenx update.

tenx 0.27.0 — proactive delegation routing, configured Herdr/tmux projection, live-dispatch fixes

Choose a tag to compare

@sivakoneti sivakoneti released this 27 Sep 16:17

Delegation is now reachable, and live Herdr dispatch actually works.

What was wrong. Nothing in the loop ever proposed an isolated worker, and
even an explicit tenx dispatch --visual failed closed. Dogfooding a real
dispatch against a live Herdr session surfaced three defects on top of that.

Added

  • tenx next emits a delegate ready ticket ... action naming the runnable
    tenx dispatch / tenx swarm command for every spec with ready tickets.
  • tenx exec <SPEC> prints the same commands when a spec has more than one
    open ticket.
  • The bundled tenx-dispatch skill routes proactively on ticket-shaped
    intent instead of suppressing itself, and carries the Herdr supervision
    commands inline so a projected worker never depends on another skill being
    routed.
  • dispatch: section in .tenx/config.yaml (agent, visual) with
    TENX_DISPATCH_VISUAL and a new --no-visual override. Default stays
    headless, so nothing changes for projects that do not opt in.

Fixed

  • herdr agent start --timeout is a readiness wait capped at 300000ms, not a
    work budget. tenx passed the ticket timeout there, so every visual
    dispatch failed with invalid_agent_timeout.
  • The dry-run plan advertised a Herdr agent name with underscores while the
    live launch used dashes, so following the plan returned agent_not_found.
  • --visual with no active multiplexer silently ran an invisible headless
    worker and reported success.
  • A failed visual launch left .tenx/worktrees/<TICKET-ID> and the
    tenx/<TICKET-ID> branch behind.
  • PyYAML wrapped long frontmatter titles at ~80 columns, and the built-in
    fallback parser dropped the continuation lines, so artifacts written on a
    PyYAML machine failed tenx validate on every install without it.

Resolution order for projection is CLI flag > TENX_DISPATCH_VISUAL >
dispatch config > headless. Unattended runs stay explicit:
tenx swarm <SPEC> --auto-reconcile from CI or cron.

Verified

Both smoke modes pass (module + clean install) on 3.10/3.12/3.13 in CI.
This release was itself dogfooded end to end: a ticket was dispatched to a
live Herdr workspace, the worker implemented it in an isolated worktree, and
the change was reviewed and landed through tenx reconcile.


Added

  • Added proactive delegation routing: tenx next now names the runnable isolated-worker command for every spec with ready tickets, the tenx exec brief prints the same commands, and the bundled tenx-dispatch skill routes on ticket-shaped intent instead of suppressing itself. Added a dispatch section to .tenx/config.yaml (agent, visual) with TENX_DISPATCH_VISUAL override and --no-visual, defaulting to headless. (SPC-036)

Changed

  • Teach capability catalog about configured projection and delegation trigger (dispatch and swarm flags, dispatch config section, --no-visual) (SPC-037)

Fixed

  • tenx dispatch --visual with no active multiplexer now exits non-zero with the cause instead of silently running an invisible headless worker, and a launch that fails after worktree creation leaves no worktree or branch behind. (SPC-036)
  • Fixed frontmatter portability: PyYAML wrapped long titles at ~80 columns, producing continuation lines the fallback parser could not read, so artifacts written on a PyYAML machine failed tenx validate on every install without it. The writer now emits unwrapped scalars and the round-trip is pinned by tests. (SPC-036)
  • Fixed a second live-dispatch defect found by dogfooding: the dry-run plan advertised a Herdr agent name with underscores while the live launch used dashes, so following the plan with herdr agent get <name> returned agent_not_found. Plan and launch now share one herdr_agent_name() helper and the agreement is pinned by tests. (SPC-036)
  • Fixed live Herdr dispatch, found by dogfooding: herdr agent start --timeout is a readiness wait capped at 300000ms, not a work budget, so passing the ticket timeout there made every visual dispatch fail closed with invalid_agent_timeout. The readiness budget is now bounded independently and the dry-run plan reports it truthfully. (SPC-036)

v0.26.2 — Update repository fix

Choose a tag to compare

@sivakoneti sivakoneti released this 26 Sep 06:34

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[Unreleased]

[0.26.2] - 2026-09-25

Fixed

  • Fixed the updater to always check the tenx distribution repository instead of the caller's Git remote.
  • Fixed the pre-release update fallback to read pyproject.toml from the published main branch instead of the obsolete master branch.

[0.26.0] - 2026-09-25

Fixed

  • Fixed Herdr-backed subagent dispatch lifecycle: Herdr skill-first supervision guidance, managed-session guards, verified agent startup receipts, explicit lifecycle outcomes, and bundled-skill drift detection. (SPC-035)
  • Fixed dispatch lifecycle reliability: receipt-backed resource teardown, dirty-worktree protection, verified Herdr agent startup, bounded multi-wave swarm, MCP DAG/swarm tools, focus flags, adapter validation, and installed skill synchronization. (SPC-035)

[0.25.0] - 2026-09-15

Added

  • feat(multiplexer): format projected Herdr workspace labels with branching glyphs and integrate native agent start lifecycle
  • Implement subagent reconciliation engine: verification, merge, and multiplexer teardown (tenx reconcile, tenx abort) (SPC-032)
  • Swarm and DAG subagent dispatch with wave partitioning, parallel execution, interactive visual chat, and MCP tools (SPC-033)
  • Implement reactive subagent wait and event-driven swarm synchronization (SPC-034)

Changed

  • docs(readme): update README with subagent dispatch, visual projection, Bifrost routing, and memory distillation
  • chore(sanitize): scrub personal author names and references for open source release
  • docs(oss): prepare repository documentation, sanitize personal metadata, and document v0.24.0 dispatch (SPC-031)

[0.24.0] - 2026-09-15

Added

  • Hierarchical Herdr sidebar subagent placement via workspace.move, parent-commit git worktree isolation, multi-harness dispatch (omp, prime-agent, codex, pi), dynamic Bifrost model routing, and memory distillation (SPC-030)

[v0.23.0] - 2026-09-15

Added

  • Visual multiplexer projection for tenx dispatch (Herdr workspaces in sidenav and tmux windows) (SPC-029)

[v0.22.0] - 2026-09-15

Added

  • Add subagent ticket dispatch system with tenx ticket-brief, tenx dispatch, and tenx-dispatch skill (SPC-028)

[v0.21.0] - 2026-09-11

Added

  • Validate epic body substance and block evidence gate on unpopulated boilerplate epics (SPC-027)

[v0.20.0] - 2026-09-11

Added

  • GitHub Actions CI: smoke suite runs in both modes (module + pip-installed) plus tenx validate on every push/PR across Python 3.10/3.12/3.13 (SPC-024)
  • Structured spec template: numbered FR-### requirements, SC-### success criteria, [NEEDS CLARIFICATION] markers, Given/When/Then acceptance guidance (SPC-025)
  • tenx validate enforces spec discipline: clarify-markers-open (error on open ambiguity past draft), requirement-uncovered / requirement-orphan coverage rules (marker-driven, legacy specs immune) (SPC-025)
  • tenx converge : deterministic spec-completion convergence — FR-### vs tickets report, --append creates missing tickets (append-only, byte-for-byte no-op when clean), --json for agents (SPC-025)
  • tenx_converge MCP tool (15 tools total): JSON convergence report for agent-driven projects; append=true creates missing tickets under the harness lock, report stays lock-free (SPC-026)

Changed

  • the tenx repo now runs commit_gate: on — staged code without activity-log write-back blocks the commit (new projects keep the warn default) (SPC-024)
  • commit-without-writeback rule builds its git --since window with whole-second ISO timestamps for consistent parsing across git versions (SPC-024)
  • define explicit development vs operational execution scope boundary in managed agent instructions and skills

Fixed

  • smoke suite module mode is now hermetic: it provides a PATH shim running the source tree so the git pre-commit gate works on bare checkouts (fresh CI runners) without an installed tenx (SPC-024)
  • git-aware enforcement (commit-without-writeback rule, gate commit-check) now parses git timestamps with a trailing Z — on UTC hosts with Python 3.10 both previously failed open and never fired (SPC-024)

[v0.19.0] - 2026-08-26

Added

  • Git-aware enforcement: tenx validate now flags recent code commits that have no activity-log write-back (commit-without-writeback rule, fail-open without git), and a new staged-change freshness gate (tenx gate commit-check) runs inside the git pre-commit hook; configure with commit_gate: on|warn|off (default warn) (SPC-023)
  • tenx doctor now audits enforcement health — missing/stale git pre-commit gate, core.hooksPath bypass, stale managed agent surfaces, missing .mcp.json / bundled skills, commit_gate: off — exits non-zero on problems with exact fix commands; tenx doctor --json adds enforcement_problems (SPC-023)
  • blocked is now a legal ticket status (workflow already referenced it); ticket creation and moves auto-append activity-log entries so ticket state changes are auditable (SPC-023)
  • Audit trail for gate escapes: evidence-gate blocks log a blocker entry, --force completions log a decision entry, and tenx archive now requires --approved-by "" and records the approver in the activity log (SPC-023)
  • tenx update re-syncs hooks and managed agent surfaces (hook install --agent detected --git) automatically after a successful upgrade (SPC-023)

Changed

  • Completion-drift rules (derived-status-drift, orphan-spec, epic-progress-drift) are now errors when an artifact is authored complete without the derived progress to back it — hand-editing status: complete in a spec/epic file no longer passes validate (SPC-023)
  • Evidence gate changelog check now scans every changelog section (not only [Unreleased]), so work documented under a released version also satisfies docs-sync (SPC-023)
  • cleanup from audit LOW findings: removed dead cli.py imports, completed the cli.py command map in the module docstring (capabilities/changelog/exec/gate/review/archive/scan/sync/mcp), README fixes (changelog in the mutating-command list, skills status, archive --approved-by, full init flag set), and the exec brief now runs validate before set-complete (SPC-023)

Fixed

  • Git hook discovery handles linked worktrees (.git pointer files resolve to the common hooks dir); the pre-commit hook is timeout-wrapped and fails open with a warning if tenx itself fails, so a broken tenx can never block all commits (SPC-023)
  • MCP mutating tools now take the same per-project harness lock as the CLI (tenx_ticket/log/set/scan/... no longer race concurrent agents); MCP callers may pass root explicitly (SPC-023)
  • yamlite hardening: zero-indent lists parse correctly and fallback-parser problems are reported visibly instead of silently dropping content (SPC-023)
  • Changelog round-trip preserves heading-less entries, sub-bullets, and prose (byte-stable re-render) (SPC-023)
  • Capabilities catalog fixes: init and gate entries added, capabilities tagged for both CLI+MCP surfaces, archive/doctor/scan guidance updated; stale managed agent surfaces are now also a validate warning (agent-surface-stale) (SPC-023)
  • Docs refresh: architecture overview + README MCP tool list updated to current reality, dead docs/agent-adapters.md link removed, bundled tenx-process skill priority order aligned with tenx next, exec brief now documents the evidence gate, changelog requirement, and commit gate (SPC-023)
  • tenx watchdog now flags only unresolved blocker log entries (a blocker counts as resolved once a later progress/decision entry follows up on the same ref) — audited gate-block entries no longer pollute the watchdog forever (SPC-023)
  • tenx scan makes the census top-15 truncation visible (heading says 'top 15 of N entries'), so a missing entry in the codebase map reads as not-shown instead of deleted (SPC-023)
  • --root is now accepted both before and after the subcommand (tenx validate --root X works; previously only tenx --root X validate did) (SPC-023)
  • tenx scan --write now actually preserves manual additions appended below the regeneration promise in the codebase map (the promise was previously false: re-scans silently deleted them) (SPC-023)

[v0.18.0] - 2026-08-26

Added

  • DSH agent preset: rename to 'tenx — Meta-Harness Engineering Agent' and rewrite the description to lead with tenx's real purpose (context-as-code meta-harness) instead of describing it as a coding agent.
  • Added tenx capabilities command and tenx_capabilities MCP tool: curated capability catalog with when-to-use guidance, advertised in the context packet (SPC-022)

Fixed

  • Fixed DSH preset mount failure in DSH web: added missing delegation rows (workflow-worker-thread, tool-subagent-list-agents, tool-subagent-fork, tool-ralph) to DSH_PRESET_CORDIS template (SPC-019)

[v0.17.0] - 2026-08-25

Added

  • DSH agent preset: tenx hook install --agent dsh emits a mountable preset whose persona hard-mandates the tenx loop (validate MUST pass, landing gate) (SPC-019)
  • Git pre-commit gate: tenx hook install --git (and init in a git repo) blocks commits while tenx validate reports errors — universal across all harnesses (SPC-020)

Changed

  • Hardened universal mandate block: AGENTS.md/bootstrap now state the loop as HARD RULES; per-harness forced tiers documented; agent aliases (dsh/agy/prime) (SPC-021)

[v0.16.0] - 2026-08-25

Added

  • tenx changelog command (show/add/release) for Keep-a-Changelog discipline (SPC-018)
  • Docs-drift validation rules: changelog-missing, changelog-format, changelog-unreleased-empty (SPC-018)
  • Evidence gate now requires a changelog entry referencing a spec/epic before completion (SPC-018)
  • tenx init seeds a CHANGELOG.md; tenx_changelog MCP tool; tenx-docs-sync skill (SPC-018)

[0.15.0]...

Read more

v0.26.1 — Update channel fix

Choose a tag to compare

@sivakoneti sivakoneti released this 26 Sep 06:28

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[Unreleased]

[0.26.1] - 2026-09-25

Fixed

  • Fixed the pre-release update fallback to read pyproject.toml from the published main branch instead of the obsolete master branch.

[0.26.0] - 2026-09-25

Fixed

  • Fixed Herdr-backed subagent dispatch lifecycle: Herdr skill-first supervision guidance, managed-session guards, verified agent startup receipts, explicit lifecycle outcomes, and bundled-skill drift detection. (SPC-035)
  • Fixed dispatch lifecycle reliability: receipt-backed resource teardown, dirty-worktree protection, verified Herdr agent startup, bounded multi-wave swarm, MCP DAG/swarm tools, focus flags, adapter validation, and installed skill synchronization. (SPC-035)

[0.25.0] - 2026-09-15

Added

  • feat(multiplexer): format projected Herdr workspace labels with branching glyphs and integrate native agent start lifecycle
  • Implement subagent reconciliation engine: verification, merge, and multiplexer teardown (tenx reconcile, tenx abort) (SPC-032)
  • Swarm and DAG subagent dispatch with wave partitioning, parallel execution, interactive visual chat, and MCP tools (SPC-033)
  • Implement reactive subagent wait and event-driven swarm synchronization (SPC-034)

Changed

  • docs(readme): update README with subagent dispatch, visual projection, Bifrost routing, and memory distillation
  • chore(sanitize): scrub personal author names and references for open source release
  • docs(oss): prepare repository documentation, sanitize personal metadata, and document v0.24.0 dispatch (SPC-031)

[0.24.0] - 2026-09-15

Added

  • Hierarchical Herdr sidebar subagent placement via workspace.move, parent-commit git worktree isolation, multi-harness dispatch (omp, prime-agent, codex, pi), dynamic Bifrost model routing, and memory distillation (SPC-030)

[v0.23.0] - 2026-09-15

Added

  • Visual multiplexer projection for tenx dispatch (Herdr workspaces in sidenav and tmux windows) (SPC-029)

[v0.22.0] - 2026-09-15

Added

  • Add subagent ticket dispatch system with tenx ticket-brief, tenx dispatch, and tenx-dispatch skill (SPC-028)

[v0.21.0] - 2026-09-11

Added

  • Validate epic body substance and block evidence gate on unpopulated boilerplate epics (SPC-027)

[v0.20.0] - 2026-09-11

Added

  • GitHub Actions CI: smoke suite runs in both modes (module + pip-installed) plus tenx validate on every push/PR across Python 3.10/3.12/3.13 (SPC-024)
  • Structured spec template: numbered FR-### requirements, SC-### success criteria, [NEEDS CLARIFICATION] markers, Given/When/Then acceptance guidance (SPC-025)
  • tenx validate enforces spec discipline: clarify-markers-open (error on open ambiguity past draft), requirement-uncovered / requirement-orphan coverage rules (marker-driven, legacy specs immune) (SPC-025)
  • tenx converge : deterministic spec-completion convergence — FR-### vs tickets report, --append creates missing tickets (append-only, byte-for-byte no-op when clean), --json for agents (SPC-025)
  • tenx_converge MCP tool (15 tools total): JSON convergence report for agent-driven projects; append=true creates missing tickets under the harness lock, report stays lock-free (SPC-026)

Changed

  • the tenx repo now runs commit_gate: on — staged code without activity-log write-back blocks the commit (new projects keep the warn default) (SPC-024)
  • commit-without-writeback rule builds its git --since window with whole-second ISO timestamps for consistent parsing across git versions (SPC-024)
  • define explicit development vs operational execution scope boundary in managed agent instructions and skills

Fixed

  • smoke suite module mode is now hermetic: it provides a PATH shim running the source tree so the git pre-commit gate works on bare checkouts (fresh CI runners) without an installed tenx (SPC-024)
  • git-aware enforcement (commit-without-writeback rule, gate commit-check) now parses git timestamps with a trailing Z — on UTC hosts with Python 3.10 both previously failed open and never fired (SPC-024)

[v0.19.0] - 2026-08-26

Added

  • Git-aware enforcement: tenx validate now flags recent code commits that have no activity-log write-back (commit-without-writeback rule, fail-open without git), and a new staged-change freshness gate (tenx gate commit-check) runs inside the git pre-commit hook; configure with commit_gate: on|warn|off (default warn) (SPC-023)
  • tenx doctor now audits enforcement health — missing/stale git pre-commit gate, core.hooksPath bypass, stale managed agent surfaces, missing .mcp.json / bundled skills, commit_gate: off — exits non-zero on problems with exact fix commands; tenx doctor --json adds enforcement_problems (SPC-023)
  • blocked is now a legal ticket status (workflow already referenced it); ticket creation and moves auto-append activity-log entries so ticket state changes are auditable (SPC-023)
  • Audit trail for gate escapes: evidence-gate blocks log a blocker entry, --force completions log a decision entry, and tenx archive now requires --approved-by "" and records the approver in the activity log (SPC-023)
  • tenx update re-syncs hooks and managed agent surfaces (hook install --agent detected --git) automatically after a successful upgrade (SPC-023)

Changed

  • Completion-drift rules (derived-status-drift, orphan-spec, epic-progress-drift) are now errors when an artifact is authored complete without the derived progress to back it — hand-editing status: complete in a spec/epic file no longer passes validate (SPC-023)
  • Evidence gate changelog check now scans every changelog section (not only [Unreleased]), so work documented under a released version also satisfies docs-sync (SPC-023)
  • cleanup from audit LOW findings: removed dead cli.py imports, completed the cli.py command map in the module docstring (capabilities/changelog/exec/gate/review/archive/scan/sync/mcp), README fixes (changelog in the mutating-command list, skills status, archive --approved-by, full init flag set), and the exec brief now runs validate before set-complete (SPC-023)

Fixed

  • Git hook discovery handles linked worktrees (.git pointer files resolve to the common hooks dir); the pre-commit hook is timeout-wrapped and fails open with a warning if tenx itself fails, so a broken tenx can never block all commits (SPC-023)
  • MCP mutating tools now take the same per-project harness lock as the CLI (tenx_ticket/log/set/scan/... no longer race concurrent agents); MCP callers may pass root explicitly (SPC-023)
  • yamlite hardening: zero-indent lists parse correctly and fallback-parser problems are reported visibly instead of silently dropping content (SPC-023)
  • Changelog round-trip preserves heading-less entries, sub-bullets, and prose (byte-stable re-render) (SPC-023)
  • Capabilities catalog fixes: init and gate entries added, capabilities tagged for both CLI+MCP surfaces, archive/doctor/scan guidance updated; stale managed agent surfaces are now also a validate warning (agent-surface-stale) (SPC-023)
  • Docs refresh: architecture overview + README MCP tool list updated to current reality, dead docs/agent-adapters.md link removed, bundled tenx-process skill priority order aligned with tenx next, exec brief now documents the evidence gate, changelog requirement, and commit gate (SPC-023)
  • tenx watchdog now flags only unresolved blocker log entries (a blocker counts as resolved once a later progress/decision entry follows up on the same ref) — audited gate-block entries no longer pollute the watchdog forever (SPC-023)
  • tenx scan makes the census top-15 truncation visible (heading says 'top 15 of N entries'), so a missing entry in the codebase map reads as not-shown instead of deleted (SPC-023)
  • --root is now accepted both before and after the subcommand (tenx validate --root X works; previously only tenx --root X validate did) (SPC-023)
  • tenx scan --write now actually preserves manual additions appended below the regeneration promise in the codebase map (the promise was previously false: re-scans silently deleted them) (SPC-023)

[v0.18.0] - 2026-08-26

Added

  • DSH agent preset: rename to 'tenx — Meta-Harness Engineering Agent' and rewrite the description to lead with tenx's real purpose (context-as-code meta-harness) instead of describing it as a coding agent.
  • Added tenx capabilities command and tenx_capabilities MCP tool: curated capability catalog with when-to-use guidance, advertised in the context packet (SPC-022)

Fixed

  • Fixed DSH preset mount failure in DSH web: added missing delegation rows (workflow-worker-thread, tool-subagent-list-agents, tool-subagent-fork, tool-ralph) to DSH_PRESET_CORDIS template (SPC-019)

[v0.17.0] - 2026-08-25

Added

  • DSH agent preset: tenx hook install --agent dsh emits a mountable preset whose persona hard-mandates the tenx loop (validate MUST pass, landing gate) (SPC-019)
  • Git pre-commit gate: tenx hook install --git (and init in a git repo) blocks commits while tenx validate reports errors — universal across all harnesses (SPC-020)

Changed

  • Hardened universal mandate block: AGENTS.md/bootstrap now state the loop as HARD RULES; per-harness forced tiers documented; agent aliases (dsh/agy/prime) (SPC-021)

[v0.16.0] - 2026-08-25

Added

  • tenx changelog command (show/add/release) for Keep-a-Changelog discipline (SPC-018)
  • Docs-drift validation rules: changelog-missing, changelog-format, changelog-unreleased-empty (SPC-018)
  • Evidence gate now requires a changelog entry referencing a spec/epic before completion (SPC-018)
  • tenx init seeds a CHANGELOG.md; tenx_changelog MCP tool; tenx-docs-sync skill (SPC-018)

[0.15.0] - 2026-08-25

Added

  • Concurrency-safe harness state: per-project advisory lock (.tenx/.lock) serial...
Read more

v0.26.0 — Dispatch reliability

Choose a tag to compare

@sivakoneti sivakoneti released this 25 Sep 14:35

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[Unreleased]

[0.26.0] - 2026-09-25

Fixed

  • Fixed Herdr-backed subagent dispatch lifecycle: Herdr skill-first supervision guidance, managed-session guards, verified agent startup receipts, explicit lifecycle outcomes, and bundled-skill drift detection. (SPC-035)
  • Fixed dispatch lifecycle reliability: receipt-backed resource teardown, dirty-worktree protection, verified Herdr agent startup, bounded multi-wave swarm, MCP DAG/swarm tools, focus flags, adapter validation, and installed skill synchronization. (SPC-035)

[0.25.0] - 2026-09-15

Added

  • feat(multiplexer): format projected Herdr workspace labels with branching glyphs and integrate native agent start lifecycle
  • Implement subagent reconciliation engine: verification, merge, and multiplexer teardown (tenx reconcile, tenx abort) (SPC-032)
  • Swarm and DAG subagent dispatch with wave partitioning, parallel execution, interactive visual chat, and MCP tools (SPC-033)
  • Implement reactive subagent wait and event-driven swarm synchronization (SPC-034)

Changed

  • docs(readme): update README with subagent dispatch, visual projection, Bifrost routing, and memory distillation
  • chore(sanitize): scrub personal author names and references for open source release
  • docs(oss): prepare repository documentation, sanitize personal metadata, and document v0.24.0 dispatch (SPC-031)

[0.24.0] - 2026-09-15

Added

  • Hierarchical Herdr sidebar subagent placement via workspace.move, parent-commit git worktree isolation, multi-harness dispatch (omp, prime-agent, codex, pi), dynamic Bifrost model routing, and memory distillation (SPC-030)

[v0.23.0] - 2026-09-15

Added

  • Visual multiplexer projection for tenx dispatch (Herdr workspaces in sidenav and tmux windows) (SPC-029)

[v0.22.0] - 2026-09-15

Added

  • Add subagent ticket dispatch system with tenx ticket-brief, tenx dispatch, and tenx-dispatch skill (SPC-028)

[v0.21.0] - 2026-09-11

Added

  • Validate epic body substance and block evidence gate on unpopulated boilerplate epics (SPC-027)

[v0.20.0] - 2026-09-11

Added

  • GitHub Actions CI: smoke suite runs in both modes (module + pip-installed) plus tenx validate on every push/PR across Python 3.10/3.12/3.13 (SPC-024)
  • Structured spec template: numbered FR-### requirements, SC-### success criteria, [NEEDS CLARIFICATION] markers, Given/When/Then acceptance guidance (SPC-025)
  • tenx validate enforces spec discipline: clarify-markers-open (error on open ambiguity past draft), requirement-uncovered / requirement-orphan coverage rules (marker-driven, legacy specs immune) (SPC-025)
  • tenx converge : deterministic spec-completion convergence — FR-### vs tickets report, --append creates missing tickets (append-only, byte-for-byte no-op when clean), --json for agents (SPC-025)
  • tenx_converge MCP tool (15 tools total): JSON convergence report for agent-driven projects; append=true creates missing tickets under the harness lock, report stays lock-free (SPC-026)

Changed

  • the tenx repo now runs commit_gate: on — staged code without activity-log write-back blocks the commit (new projects keep the warn default) (SPC-024)
  • commit-without-writeback rule builds its git --since window with whole-second ISO timestamps for consistent parsing across git versions (SPC-024)
  • define explicit development vs operational execution scope boundary in managed agent instructions and skills

Fixed

  • smoke suite module mode is now hermetic: it provides a PATH shim running the source tree so the git pre-commit gate works on bare checkouts (fresh CI runners) without an installed tenx (SPC-024)
  • git-aware enforcement (commit-without-writeback rule, gate commit-check) now parses git timestamps with a trailing Z — on UTC hosts with Python 3.10 both previously failed open and never fired (SPC-024)

[v0.19.0] - 2026-08-26

Added

  • Git-aware enforcement: tenx validate now flags recent code commits that have no activity-log write-back (commit-without-writeback rule, fail-open without git), and a new staged-change freshness gate (tenx gate commit-check) runs inside the git pre-commit hook; configure with commit_gate: on|warn|off (default warn) (SPC-023)
  • tenx doctor now audits enforcement health — missing/stale git pre-commit gate, core.hooksPath bypass, stale managed agent surfaces, missing .mcp.json / bundled skills, commit_gate: off — exits non-zero on problems with exact fix commands; tenx doctor --json adds enforcement_problems (SPC-023)
  • blocked is now a legal ticket status (workflow already referenced it); ticket creation and moves auto-append activity-log entries so ticket state changes are auditable (SPC-023)
  • Audit trail for gate escapes: evidence-gate blocks log a blocker entry, --force completions log a decision entry, and tenx archive now requires --approved-by "" and records the approver in the activity log (SPC-023)
  • tenx update re-syncs hooks and managed agent surfaces (hook install --agent detected --git) automatically after a successful upgrade (SPC-023)

Changed

  • Completion-drift rules (derived-status-drift, orphan-spec, epic-progress-drift) are now errors when an artifact is authored complete without the derived progress to back it — hand-editing status: complete in a spec/epic file no longer passes validate (SPC-023)
  • Evidence gate changelog check now scans every changelog section (not only [Unreleased]), so work documented under a released version also satisfies docs-sync (SPC-023)
  • cleanup from audit LOW findings: removed dead cli.py imports, completed the cli.py command map in the module docstring (capabilities/changelog/exec/gate/review/archive/scan/sync/mcp), README fixes (changelog in the mutating-command list, skills status, archive --approved-by, full init flag set), and the exec brief now runs validate before set-complete (SPC-023)

Fixed

  • Git hook discovery handles linked worktrees (.git pointer files resolve to the common hooks dir); the pre-commit hook is timeout-wrapped and fails open with a warning if tenx itself fails, so a broken tenx can never block all commits (SPC-023)
  • MCP mutating tools now take the same per-project harness lock as the CLI (tenx_ticket/log/set/scan/... no longer race concurrent agents); MCP callers may pass root explicitly (SPC-023)
  • yamlite hardening: zero-indent lists parse correctly and fallback-parser problems are reported visibly instead of silently dropping content (SPC-023)
  • Changelog round-trip preserves heading-less entries, sub-bullets, and prose (byte-stable re-render) (SPC-023)
  • Capabilities catalog fixes: init and gate entries added, capabilities tagged for both CLI+MCP surfaces, archive/doctor/scan guidance updated; stale managed agent surfaces are now also a validate warning (agent-surface-stale) (SPC-023)
  • Docs refresh: architecture overview + README MCP tool list updated to current reality, dead docs/agent-adapters.md link removed, bundled tenx-process skill priority order aligned with tenx next, exec brief now documents the evidence gate, changelog requirement, and commit gate (SPC-023)
  • tenx watchdog now flags only unresolved blocker log entries (a blocker counts as resolved once a later progress/decision entry follows up on the same ref) — audited gate-block entries no longer pollute the watchdog forever (SPC-023)
  • tenx scan makes the census top-15 truncation visible (heading says 'top 15 of N entries'), so a missing entry in the codebase map reads as not-shown instead of deleted (SPC-023)
  • --root is now accepted both before and after the subcommand (tenx validate --root X works; previously only tenx --root X validate did) (SPC-023)
  • tenx scan --write now actually preserves manual additions appended below the regeneration promise in the codebase map (the promise was previously false: re-scans silently deleted them) (SPC-023)

[v0.18.0] - 2026-08-26

Added

  • DSH agent preset: rename to 'tenx — Meta-Harness Engineering Agent' and rewrite the description to lead with tenx's real purpose (context-as-code meta-harness) instead of describing it as a coding agent.
  • Added tenx capabilities command and tenx_capabilities MCP tool: curated capability catalog with when-to-use guidance, advertised in the context packet (SPC-022)

Fixed

  • Fixed DSH preset mount failure in DSH web: added missing delegation rows (workflow-worker-thread, tool-subagent-list-agents, tool-subagent-fork, tool-ralph) to DSH_PRESET_CORDIS template (SPC-019)

[v0.17.0] - 2026-08-25

Added

  • DSH agent preset: tenx hook install --agent dsh emits a mountable preset whose persona hard-mandates the tenx loop (validate MUST pass, landing gate) (SPC-019)
  • Git pre-commit gate: tenx hook install --git (and init in a git repo) blocks commits while tenx validate reports errors — universal across all harnesses (SPC-020)

Changed

  • Hardened universal mandate block: AGENTS.md/bootstrap now state the loop as HARD RULES; per-harness forced tiers documented; agent aliases (dsh/agy/prime) (SPC-021)

[v0.16.0] - 2026-08-25

Added

  • tenx changelog command (show/add/release) for Keep-a-Changelog discipline (SPC-018)
  • Docs-drift validation rules: changelog-missing, changelog-format, changelog-unreleased-empty (SPC-018)
  • Evidence gate now requires a changelog entry referencing a spec/epic before completion (SPC-018)
  • tenx init seeds a CHANGELOG.md; tenx_changelog MCP tool; tenx-docs-sync skill (SPC-018)

[0.15.0] - 2026-08-25

Added

  • Concurrency-safe harness state: per-project advisory lock (.tenx/.lock) serializes mutating commands (SPC-017)
  • Atomic file writes (same-directory temp + os.replace) for all state-file updates (SPC-017)
  • TENX_LOCK_TIMEOUT override; clean exit-2 on lo...
Read more

v0.25.0: Autonomous Meta-Harness for AI Coding Agents

Choose a tag to compare

@sivakoneti sivakoneti released this 15 Sep 04:06

Initial Open-Source Release (v0.25.0)

tenx is an autonomous meta-harness providing context-as-code for AI coding agents.

Highlights

  • Zero Runtime Dependencies: Python 3.10+ standard library only.
  • Universal Multi-Harness Integration: Out-of-the-box adapters and injection tiers for Claude Code, Cursor, Codex, OpenCode, Cline, Windsurf, Continue, Devin, Pi, Oh My Pi, Prime Agent, Antigravity, and 20+ other harnesses.
  • SDLC Linting & Enforced Evidence Gate: tenx validate checks derived status drift, broken references, orphan requirements, and prevents work from landing without logged verification.
  • DAG Swarm & Parallel Execution: Topological wave scheduling (tenx dag, tenx swarm) with cycle detection.
  • Visual Multiplexer Projection: Real-time interactive subagent projection into Herdr workspaces (with parent-child hierarchy) and tmux windows.
  • Automated Worktree Lifecycle: Exact-parent commit git worktree branching with automated verification, landing, and cleanup (tenx dispatch, tenx reconcile, tenx abort).
  • Native MCP Tools: Exposes 19 native tools over stdio for LLM harnesses.

Quick Install

pip install tenx
# or
uv tool install git+https://github.com/10xdev/10xdev-cli.git

v0.23.0: Visual Multiplexer Subagent Dispatch (Herdr Sidenav & Tmux)

Choose a tag to compare

@sivakoneti sivakoneti released this 14 Sep 19:44

Added

  • Visual Multiplexer Subagent Projection (tenx dispatch --visual):
    • Automatically projects delegated subagents into active terminal multiplexers:
      • Herdr: Creates disposable presentation workspaces (herdr workspace create --label <TICKET-ID> --no-focus) rendered directly in Herdr left sidebar navigation (sidenav) for live monitoring.
      • Tmux: Creates background windows (tmux new-window -n <TICKET-ID>).
    • Supports --multiplexer auto|herdr|tmux|none and --focus flags in CLI and MCP tenx_dispatch tool.
    • Full dry-run visualization of multiplexer command projections (--dry-run).
  • Operating Protocol Documentation:
    • Updated bundled tenx-dispatch skill with visual monitoring guidelines.

v0.22.0 - Subagent Ticket Dispatch System

Choose a tag to compare

@sivakoneti sivakoneti released this 14 Sep 18:55

Added

  • Subagent ticket dispatch system with context slicing and git worktree isolation:
    • tenx ticket-brief <SPEC> <TICKET>: Extracts isolated requirement and conventions brief
    • tenx dispatch <SPEC> <TICKET> --agent <NAME>: Sets up git worktree at .tenx/worktrees/<TICKET> and executes headless subagent
    • Dual MCP tools: tenx_ticket_brief and tenx_dispatch
    • Operating protocol skill: tenx-dispatch (EPC-018 / SPC-028)