Skip to content

Update dependency voku/agent-loop to v0.20.11 - #118

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/voku-agent-loop-0.x
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/voku-agent-loop-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
voku/agent-loop 0.16.50.20.11 age confidence

Release Notes

voku/agent-loop (voku/agent-loop)

v0.20.11

Compare Source

Added
  • Project method details from compiled Recall navigation facts in WorkflowContextCommand: renders method names and line numbers (BundleFoo::doWork() — src/Foo.php:12) directly from recall facts, removing archaeological grep calls for method locations.
  • Formalize canonical closed-loop learning ladder and GH-457 proof in documentation: deconstructs the fast Evidence Loop (Finding -> LearningNote -> Recall -> Decision) from the durable Promotion Loop (Dream -> Proposal -> Human Approval -> Constraint/Skill -> Mechanical Enforcement -> Guidance Retirement).
  • Record validated findings finding.2026-09-14.481001 (constraint alias falsification) and finding.2026-09-14.483001 (package skill semantic drift).
Changed
  • Bump voku/agent-learning to ^0.18.15 to consume typed CorpusAnalyticsService, strict retirement categorization (CAPTURED_IN_TARGET_HOME, COMPILED_DOWN_TO_ACTIVE_CONSTRAINT), and stale applied guidance proof diagnostics.
  • Set Composer process-timeout to 900 seconds in composer.json so full test suites pass without ambient environment variable workarounds.
Fixed
  • Enforce in-process PHPStan RuleTestCase constraint through resolved names: NoInProcessPhpstanRuleTestCaseRule resolves AST class names through PHPStan Scope so aliased imports (use PHPStan\Testing\RuleTestCase as BaseRuleTestCase;) are caught deterministically (#​481, #​482).

v0.20.10

Compare Source

Fixed
  • Use the owner repository's checked-out first-party skill roots during init install-assets instead of falling back to installed vendor copies, so maintainer repositories install their current local resources without duplicate skill IDs or mixed package-version source truth.

v0.20.9

Compare Source

Added
  • Add typed repository setup contributor projection (RepositorySetupContributor) and projector (RepositorySetupContributorProjector), deriving asset contributor scopes (consumer, owner_repository, project, local) and asset counts (skillCount, subagentCount, instructionCount) directly from resolved source truth and first-party instruction exports.
  • Expose typed contributors on RepositorySetupProjection and render contributor summaries in InitHostStatusCommand CLI output.
  • Add ManagedSubagentSourceResolver to resolve managed subagents once with provenance and lazy definition validation across setup planning and drift checks.
Changed
  • Resolve managed skill and subagent sources once during setup planning rather than repeatedly rediscovering asset sources across planning, installer provenance, and overview readiness.
  • Preserve real-host Task-B evidence receipt in dogfood documentation without changing behavioral attribution.
Fixed
  • Prefer owner repository checked-out skill sources over vendor fallbacks when resolving exportable skills in first-party packages.
  • Honor configured package asset policy (package_skills: false, package_subagents: false) in typed setup plans and managed asset drift projections so disabled package assets are not planned or claimed.
  • Align active Recall compatibility proofs with the supported ^0.17.7 owner floor while preserving historical Map 0.10 compatibility boundaries.

v0.20.8

Compare Source

Added
  • Add FirstPartyPackageCatalog as the single owner of first-party workflow package roots, scoped asset exports, and composed project instructions.
  • Support consumer vs. owner repository scoping during asset installation: consuming projects receive only consumer-facing skills (agent-learning-consumer, agent-learning-note, agent-hard-constraint-author, agent-learning-ctx-evidence, agent-recall-consumer, Loop core skills), while owner repositories receive their respective maintainer skills (agent-learning-maintainer, agent-recall-compiler-maintainer, agent-session-maintainer).
  • Compose consumer instruction fragments from first-party packages (voku/agent-learning, etc.) into AGENTS.md within the managed router marker block without touching project-owned text.
Changed
  • Raise dependency floors to voku/agent-learning ^0.18.10, voku/agent-recall-compiler ^0.17.7, and voku/agent-session ^0.7.1 to consume typed PackageResources skill and instruction definitions and bounded shipped static-analysis precedents.
  • Delegate managed asset source root and provenance resolution from ManagedAssetSource and ManagedAssetExpectationResolver to FirstPartyPackageCatalog.
  • Filter skill targets in RepositorySetupService, RepositoryManagedAssetInstaller, ManagedAssetTargetCatalog, and InitSyncSkillsCommand with project-scoped authority.
Fixed
  • Select the native Composer binary for deterministic PHPStan fixture checks, and resolve packaged hook commands from the invoking linked worktree rather than the common checkout that stores hook files.
  • Keep every candidate and historical release-set Recall proof pinned to the declared 0.17.7 minimum, including the Map 0.10 compatibility consumer.

v0.20.7

Compare Source

Added
  • Persist the first real Learning-owned closed-loop precedent in the repository's durable Learning root, keeping the behavioral handoff honest: selection into future Recall context is evidence of exposure, not proof that a later coding agent used the lesson.
  • Add CurrentExecutionStageReader / CurrentExecutionStageProjection as a narrow read boundary for the exact persisted current execution stage. The projection binds task, Run, Contract revision, execution-plan digest, stage, attempt and candidate revision before exposing stage kind and role, and fails closed on stale plan/state identity.
  • Recommend and probe jq alongside rg in the existing system-tool setup path without making either tool a package-managed dependency.
Changed
  • Materialize the current ready L1 through the Loop-owned execution-contract store and consume that owner result from both execution preparation and ordinary bounded workflow context, keeping L2 construction evidence separate from the exact executable L1.
  • Compile the repeated in-process PHPStan rule-test-case lesson into an active deterministic constraint, retain its Learning provenance, and retire the superseded soft guidance once enforcement is present.
  • Raise the released owner floor to voku/agent-learning ^0.18.8 and voku/agent-recall-compiler ^0.17.6, and allow the released voku/agent-map ^0.13.0 line beside the maintained compatibility lines.
Fixed
  • Advance the Recall-outcome gate before advertising the later Learning decision, so the canonical finish action addresses the actual unsatisfied blocker instead of skipping ahead.
  • Generalize blocked recovery convergence: when a blocked lifecycle would otherwise advertise read-only status/manifest inspection as the canonical next action, preserve the existing blocker evidence and project actionable host work instead.
  • Keep the PHPStan 2.2.14 test suite analyzable without suppressions by representing shared callback lock state as explicit mutable test state instead of by-reference scalar variables that the analyzer can constant-fold.

v0.20.6

Compare Source

Added
  • Add the optional local control-plane presentation boundary: configured agent-ui task links are projected only after the endpoint is verified, presentation status stays explicit, and bounded detail text remains valid UTF-8 while respecting its byte ceiling. The control plane remains presentation only; it does not acquire workflow authority.
  • Project typed subagent mutation intent through installed host assets. Investigator, triager and review roles declare read-only intent, the surgical builder declares writable intent, and Codex projection reports whether read-only sandbox enforcement is actually available instead of treating a requested policy as an enforced one.
  • Add an installed workflow-only consumer proof for agent-map 0.12's typed definition-capability boundary without introducing a second Loop product front door.
Changed
  • Allow configured skill/subagent source roots and package-asset toggles so repositories can keep adapted local assets without receiving an unnecessary duplicate package projection.
  • Raise the released owner floors to voku/agent-learning ^0.18.6 and voku/agent-recall-compiler ^0.17.4, allow the released voku/agent-map ^0.12.0 line beside the maintained 0.10/0.11 compatibility lines, and use voku/portable-utf8 ^6.1 for bounded Unicode-safe presentation.
Fixed
  • Keep projected Run artifact identity content-exact. The previous path/mtime/filesize hash cache could reuse a digest after content changed without those metadata changing; the cache surface is removed so SHA-256 identity again reflects the bytes being governed.
  • For L2-selected agent stages, dispatch the current hash-bound execution-contract.md as the executor prompt and fail closed when that concrete L1 is missing, stale, invalid, blocked, or rejected. Recall's system.md remains construction/briefing evidence and is no longer injected into the acting host once the final L1 exists. Direct-L1/no-L2 tasks retain the existing governed Recall path. (#​445, #​446)
  • Keep control-plane projection typing/status enforcement and UTF-8 truncation exact, including quote handling in projected subagent definitions.
Validation
  • PR #​446 passed PHP 8.3/8.4/8.5 CI, PHPStan/project rules, deterministic slop review, self-shape, governed execution-contract dogfood, installed release-set dogfood, diagnostics, refactor consumers, and release upgrade/resume evidence on exact head 0e10f7622dbb7005f61d787234eeb1508f5b1e2f before merge as 1719f67ca64e1b7df952f24ac026d48823f3aa12.
  • voku/agent-loop-runner#20 independently replayed that exact Loop candidate through the real ExecutionGateway -> ExecutionCoordinator -> HostExecutionRequest path: PHPUnit and PHPStan passed on PHP 8.3/8.4/8.5, the acting host received the final five-section L1, and the L2 construction briefing was absent. The Runner PR remains unmergeable by policy until this release replaces its temporary candidate pin.

v0.20.5

Compare Source

Changed
  • Raise the voku/agent-map floor on the 0.11 line to ^0.10.0 || ^0.11.6. The old ^0.10.0 || ^0.11.0 let this package sit on 0.11.2 while 0.11.6 was released, so a consumer could ask map scope for a known PHP identity and be told Agent map is stale. Rebuild it before inspecting a scope. - the round trip that sends a coding agent back to text search. ^0.11.6 is the release where an exact read repairs a stale index itself when that is safe and refuses with an executable command when it is not. The 0.10 line is deliberately kept: five installed-consumer workflows pin 0.10.0 to prove the released refactor plan contracts still work for a consumer that has not moved, and a blanket ^0.11.6 would have deleted that evidence to guarantee something a plain resolve already provides.
  • Skip companion relation decoding in RunManifestProjector and WorkflowRunPreparer when inspecting map readiness, and read only the files section in WorkflowContextCommand, keeping context generation resilient and fast when relations are unavailable or large.
Fixed
  • Route a named PHP identity to map scope instead of text search in agent-loop-discipline. The skill grouped "known files/symbols" with literals, config/templates and exception messages under one "prefer rg" clause, so the one case the semantic index resolves exactly was sent to the tool that only approximates it. agent-loop-investigate in the same package already said the opposite - do not use text search to rediscover a PHP identity that scope already resolves - and the always-on bootstrap skill is the one that wins in practice. Navigation now routes by question shape: text-shaped questions keep rg, identity-shaped questions resolve through scope (or context for a planned edit) when a fresh Map already exists, unknown ownership narrows first and then resolves exactly, and supported structural mutation prefers a governed plan. Everything #​344 bought is kept: no cold build for a cheap question, no duplicated Map and rg discovery, and native fallback when repair would cost more than the question warrants. Reported as #​423.
Performance
  • Memoize artifact hashing by path, mtime, and filesize in RunManifestProjector::artifact(), preventing redundant repeated SHA256 calculations of large artifacts (such as SQLite databases and symbol maps) during batch task projections.

v0.20.4

Compare Source

Fixed
  • workflow status shows the Contract goal and acceptance criteria in its text output. The command can end by naming workflow approve as the next action while rendering the Contract as nothing more than revision N (<path>), so a human told a decision was required was given the command and not its subject; the only way to see what was being approved was a second command or the raw JSON. This was never missing data: RunManifestProjector::contractReference() already carried both fields and --format=json and --format=toon already returned them, and the text renderer, which shows every reference as a state plus a one-line detail, dropped them. Structured output is unchanged. Reported as #​413.

v0.20.3

Compare Source

Added
  • GovernedRunStore::taskIds() reports the task ids that have a governed Run, in a deterministic order. find() has always answered about a task the caller can already name, which covers every CLI invocation but leaves a consumer showing a project with no list to start from — the board is the only enumerable set of work available to it, and a task may carry a governed Run without a card, a state enter reports without complaint. Those Runs were then not merely unrendered but absent from the question. In voku/agent-ui today that is 6 of 8 Runs. The history root and any directory without a run.json are excluded, and the ordering is the owner's so two consumers cannot disagree about what all governed work is. Reported as #​409.
Changed
  • Every enter discovery refusal now names the agent-map index it judged. A repository can hold more than one - a repository-local .agent-map/ beside the governed .agent-loop/map/, read by different owners - and a refusal that listed only which files were stale left a host refreshing the other index, seeing no change, and re-running the same prescribed command. MapReadiness::$mapPath already carried the answer; it is now reported unchanged in the missing, invalid, stale, unreadable-current-map and scope-not-indexed refusals. Reported as #​404.

v0.20.2

Compare Source

Added
  • TaskContractStore::supersededRevisions() returns every archived revision of one task's Contract, oldest first. revise() has always written the revision it replaces to history/, in full and including who approved it, but nothing could read it back. The decision that needs it most is the next approval: a human asked to approve revision 2 has already approved revision 1, and without the earlier revision neither this package nor a consumer can say what changed. The alternative left to consumers was reading the archive directory themselves, which is the private-layout coupling the store exists to prevent. An archived revision that cannot be decoded fails closed rather than being skipped, because a silently shortened history understates exactly what the projection is for.
Changed
  • Ask agent-recall-compiler where its review artifacts live instead of spelling out the reviews/ directory when placing the disposable human review workbench, and take the edit-verification map-index default from agent-map through ProjectLayout::mapIndex() instead of naming php-symbols.json. Loop still configures the mount roots; the filenames below them stay owner-owned. (#​285)
Fixed
  • Converge a stale verification receipt instead of routing back to read-only workflow status: when a governed Session can still record replacement evidence, verification is re-derived for the exact current implementation and the superseded receipt travels with it as superseded_receipt. (#​399)
  • Project a Learning decision bound to a previous evidence boundary as stale so the canonical next action asks for a fresh disposition instead of disagreeing with close readiness. (#​399)
  • Decode the fast-path scope baseline without a throwing JSON mode, so an unreadable file is answered by the shape check that already rejects it instead of a separate catch.

v0.20.1

Compare Source

Added
  • Project method details from compiled Recall navigation facts in WorkflowContextCommand: renders method names and line numbers (BundleFoo::doWork() — src/Foo.php:12) directly from recall facts, removing archaeological grep calls for method locations.
  • Formalize canonical closed-loop learning ladder and GH-457 proof in documentation: deconstructs the fast Evidence Loop (Finding -> LearningNote -> Recall -> Decision) from the durable Promotion Loop (Dream -> Proposal -> Human Approval -> Constraint/Skill -> Mechanical Enforcement -> Guidance Retirement).
  • Record validated findings finding.2026-09-14.481001 (constraint alias falsification) and finding.2026-09-14.483001 (package skill semantic drift).
Changed
  • Bump voku/agent-learning to ^0.18.15 to consume typed CorpusAnalyticsService, strict retirement categorization (CAPTURED_IN_TARGET_HOME, COMPILED_DOWN_TO_ACTIVE_CONSTRAINT), and stale applied guidance proof diagnostics.
  • Set Composer process-timeout to 900 seconds in composer.json so full test suites pass without ambient environment variable workarounds.
Fixed
  • Enforce in-process PHPStan RuleTestCase constraint through resolved names: NoInProcessPhpstanRuleTestCaseRule resolves AST class names through PHPStan Scope so aliased imports (use PHPStan\Testing\RuleTestCase as BaseRuleTestCase;) are caught deterministically (#​481, #​482).

v0.20.0

Compare Source

Added
  • Add fast-path micro-task flow (agent-loop quick): initiate, auto-approve, and enter a bounded surgical micro-task (up to 2 files) in a single command, with 1-shot auto-close enforcement (60-line diff ceiling, scope confinement, auto-recorded reviews/learning).
  • Add bounded auto-repair on verification failure (agent-loop repair): capture structured diagnostics (PHPStan, PHPUnit, PHP linter, PHP-CS-Fixer) on validation failure, project actionable repair instructions, and enforce a strict 2-attempt budget before human escalation to prevent infinite agent repair loops.
  • Add turnkey multi-stage execution runner (agent-loop pipeline): automate multi-stage profiles (surgical, standard, hardened) with role-based briefings, handoff envelopes carrying review feedback (e.g. changes_required loops back to build), and deterministic verification auto-progression.
  • Add human/agent workflow front doors under docs/workflow/ while keeping code authoritative for lifecycle semantics and README.md focused on product overview.
  • Add end-to-end two-run LearningNote dogfood for #​349 through released owner APIs: Task A records a classified validated Finding, closes with the note route only as an optional follow-up, physically prunes its Session working memory, then publishes the note from durable Learning evidence; Task B enters normally and Recall supplies the exact current precedent with source lineage and deterministic scope evidence.
  • Add end-to-end dogfood test tests/Dogfood/AutonomousReplanDogfoodTest.php proving behavioral closure of #​345: an agent facing an invalid implementation premise autonomously triggers REPLAN within the approved intent without human interruption, while premise failures requiring scope or goal changes strictly enforce HUMAN_DECISION_REQUIRED via superseded unapproved contract revisions.
Changed
  • Require voku/agent-learning ^0.16.1, making the released classified-Finding owner API part of Loop's supported dependency boundary instead of relying on Learning-private storage in the return-loop proof.
  • Advance the root development alias to 0.20.x-dev.

v0.19.0

Compare Source

Changed
  • Breaking. Adopt the coordinated pre-1.0 release set: voku/agent-kanban ^0.4.0,
    voku/agent-learning ^0.16.0, voku/agent-map ^0.10.0,
    voku/agent-recall-compiler ^0.15.0, voku/agent-session ^0.7.0. The root
    development alias moves to 0.19.x-dev.
  • Resolve Recall's bundled operating-prompt manifest through the owner's
    BundledOperatingPromptManifest::consumer() instead of deriving
    skills/agent-recall-consumer/operating-prompts.json from a reflected source
    location. Recall moved that asset to resources/skills/, and the reconstructed
    path failed closed with "Bundled todo-card-handoff manifest not found" - the
    owner's own docblock forbids consumers knowing that layout.
  • Dogfood workflows pin the declared minimum release set (Recall 0.15.0, Map
    0.10.0) in checkout refs, Composer path-repository version aliases, and the
    resolved-version assertions that guard them.
Fixed
  • map history diff coverage snapshots the complete index. agent-map 0.10.0
    splits the index into symbol definitions plus a companion relations file, so
    copying php-symbols.json alone produced an incomplete "before" side and an
    unchanged tree reported spurious relation_added events.
  • The governed plan-capability contract expects Map 0.10's fourteen plans,
    adding copy:method_copy_plan, move:method_move_plan,
    scaffold:class_scaffold_plan and scaffold:method_scaffold_plan.
  • Review blind-spot coverage asserts Recall's current report wording, which the
    0.13.16 pin had hidden.
Added
  • Skills shipped by voku/agent-session are projected by init install-assets
    alongside Loop's own and Recall's. The two siblings are wired asymmetrically on
    purpose: Recall has shipped skills for as long as this projection existed, so
    failing to locate it stays a hard error, while agent-session only ships skills
    from the release that introduced its own PackageResources. An older installed
    agent-session therefore contributes nothing instead of being reported as
    breakage, and resolve() never hands callers a root that does not exist -
    RepositorySetupService::expectedSkillEntries() treats every resolved root as
    mandatory.
Changed
  • FirstPartySkillRoots::recallSkillEntries() becomes siblingSkillEntries() and
    returns the merged, sorted, de-duplicated contribution of every sibling owner
    package rather than Recall alone.
  • The first-party install tests derive the expected source-root count from
    FirstPartySkillRoots::resolve() instead of asserting the literal
    from 2 source root(s), so wiring a sibling in no longer breaks assertions
    that were only ever about extra roots not leaking in.
  • Adapt to sibling package asset moves in voku/agent-recall-compiler: resolve Recall consumer skills via PackageResources::skillsRoot() with fallback to resources/skills/ and skills/. Update documentation, workflows, and dogfood prompt references to vendor/voku/agent-recall-compiler/resources/skills/.
  • Require voku/agent-learning ^0.15.0, which makes agent-loop learn proposal-reanchor <target> --by ACTOR --reason TEXT available. An applied memory/skill proposal pins its whole target file by hash, so editing any other row of a shared guidance home such as MEMORY.md made every applied proof on that file report drift it did not cause, and agent-loop verify failed with no way back: retiring answers a curation question nobody asked and re-applying is closed to an applied record. The repair is the owner's, reached through the existing learn delegation rather than reimplemented here.

v0.18.6

Compare Source

Fixed
  • Require voku/agent-learning ^0.14.2 on the maintained 0.18.x line so released consumers can use Learning 0.14 owner APIs without an unsatisfiable Composer graph. No Loop runtime behavior changes.
Changed
  • Breaking. Package-shipped assets moved out of docs/ and the repository root into resources/, so docs/ is human explanation only and resources/ is what the package ships. docs/agents/skills -> resources/skills, docs/agents/subagents -> resources/subagents, docs/agents/codex-hooks -> resources/hooks/codex, docs/agents/claude-hooks -> resources/hooks/claude, docs/agents/tools -> resources/tools, docs/agents/project-instructions.md -> resources/instructions/project-instructions.md, docs/agents/recall-documents.json -> docs/recall-documents.json, githooks/ -> resources/githooks/, make/agent-loop.mk -> resources/make/agent-loop.mk, and resources/operating-prompts.json -> resources/prompts/operating-prompts.json. There are no forwarding copies; a stale path fails loudly.
  • Breaking. The default asset source roots resolved from .agent-loop/init.json (paths.skills_root, paths.subagents_root, paths.codex_hooks_root, paths.claude_hooks_root, paths.tools_root) now default to the same resources/... layout instead of docs/agents/.... A repository that kept its own assets at the previous default either moves them or names the old location explicitly in paths.
  • Added voku\AgentLoop\PackageResources as the single owner of package-shipped resource locations. Setup, hook, prompt and review code resolve asset paths through it instead of each spelling a physical directory.
  • Human documentation moved to predictable category paths: docs/agents/LIFECYCLE.md -> docs/workflow/lifecycle.md, docs/agents/INFO_Agents.md -> docs/reference/agent-assets.md, docs/agents/PROMPT_PRIMITIVES.md -> docs/reference/prompt-primitives.md, docs/agents/THIRD_PARTY_NOTICES.md -> docs/reference/third-party-notices.md, docs/agents/project-integrated-phpstan-tools.md -> docs/reference/project-integrated-phpstan-tools.md, the capability matrices to docs/architecture/, docs/agents/policies/ -> docs/policies/, and docs/agents/dogfood/ -> docs/dogfood/.
Fixed
  • agent-loop enter text output now renders the exact candidate Contract revision and complete goal before its human approval command, matching the structured decision projection.
  • Require voku/agent-learning ^0.14.2 so governed Runs with multi-segment ad-hoc task IDs can record Findings bound to their exact task and Session lineage without weakening those checks.

v0.18.5

Compare Source

Added
  • agent-loop workflow plan: Display the task goal and file scope in CLI output upon planning or revising a candidate contract so human review has immediate goal context before approving.
  • agent-loop finish: Added --recall-outcome-draft support to optionally delegate Recall outcome logging directly during the finish command.
  • make/agent-loop.mk: Added agent_init_tools target to probe and cache CLI tool availability.
  • agent-loop init install-assets: Added --config and --extra-subagents-root support. Configured repository skills (paths.skills_root) and subagents (paths.subagents_root) from .agent-loop/init.json are now automatically detected and merged with first-party package guidance instead of being marked as stale and removed.
  • agent-loop init install-assets: Added package_skills and package_subagents configuration options in init.json (as well as --no-package-skills and --no-package-subagents CLI flags) to allow repositories with their own adapted skill suites to disable first-party package skills and avoid context budget warnings.
  • agent-loop init sync-subagents: Added support for multiple --subagents-root directories.

v0.18.4

Compare Source

Added
  • Extend the immutable WorkflowPromptEnvelope re-entry projection with the current approved Contract goal and a bounded continuity_anchor containing only the newest durable checkpoint from the exact Session identity selected by the current Run manifest.
  • Consume the released agent-map 0.9 plan surface as a governed host, including parameter_rename_plan@1.0 and class_move_plan@1.0, with shared hash-bound transactional application, rollback, current-Map verification, and clean installed-consumer lifecycle proof.
Changed
  • WorkflowPromptService::continueTask() renders the approved goal and latest durable checkpoint before current state and canonical next action, while the host-facing envelope schema remains explicit at 1.1 and existing positional construction stays compatible.
  • PHP navigation is adaptive rather than universally Map-first or CLI-first: use focused CLI reads for already-localized/literal facts, use agent-map for structural and relational questions, prefer an already-fresh Map, and do not pay a cold build merely to satisfy policy.
  • Tighten owner boundaries by consuming Session state through its typed handoff projection, routing Recall document manifests only through ProjectLayout, and keeping itp-context architecture metadata and dogfood helpers in the development graph rather than production autoload.
  • Move the supported consumer floor to released voku/agent-map ^0.9.0 and voku/agent-recall-compiler ^0.13.16; installed refactor dogfood exercises the released package set rather than sibling or dev-main implementations.
  • Review guidance now treats Loop/Recall review code / review first-draft as the guaranteed default correctness-review capability. Installed code-review-* engineering lenses may deepen one dominant concern but their absence does not block an otherwise executable review. Governed close-out remains owned by finish; the ungoverned path reaches review first-draft before any task-bound status call.
Fixed
  • Make first-party managed-asset provenance portable across checkout/vendor relocation. Manifest v3 persists package-relative source_reference values for Loop/Recall-owned assets, resolves them against the currently installed owner root, keeps v1/v2 readable until resync, preserves SHA-256 drift detection, rejects unsafe references fail-closed, and represents the package root itself explicitly as ..
  • Surface the default Kanban false-green where a linked task is in DOING but Loop has neither a Contract nor a governed Run. Custom board topologies remain uninterpreted rather than acquiring a second hidden lifecycle mapping.
  • Keep the Learning follow-up command template executable by advertising the conditional --follow-up-ref input required by follow_up_required close-out.
  • Scaffolded workflow state ignores per-Run execution lock files; the locks remain synchronization residue and are not deleted in a way that could break inode-based exclusion.
  • Class-move publication may create only the required destination directories inside the Map root and restores them on rollback; post-apply verification binds the exact plan digest and current rebuilt Map instead of comparing pre-mutation provenance to post-mutation identity.
Validation
  • PR #​329 restored the complete pre-corruption release history byte-for-byte from the immutable pre-#​325 CHANGELOG.md blob before this section was re-prepared; no historical release prose is reconstructed from memory.
  • The original re-entry slice in PR #​324 passed PHP 8.3/8.4/8.5 CI, diagnostics, PHPStan/project rules, installed release-set/refactor lifecycles, governed execution-contract dogfood, deterministic slop review, self-shape, AccessLint, and CodeRabbit on exact head 12d75916b3b3ecc1928981b0e9c3e6ca9ff22bea before merge.
  • The complete 0.18.4 release candidate is gated again on exact-head PHP 8.3/8.4/8.5 CI and diagnostics, PHPStan/project rules, installed release-set and refactor lifecycles, governed execution-contract dogfood, deterministic slop review, self-shape, AccessLint, and review checks before any tag marker may name the immutable release target.

v0.18.3

Compare Source

Fixed
  • A governed Run is no longer sealed by its own first finish. Work can legitimately
    continue afterwards - the closing Run's review gate can itself demand a follow-up
    change - but two independent guards made that unrecoverable:
    • WorkflowRunPreparer::prepareSession() threw whenever the bound Session existed
      and was not active, while the very next branch already rehydrated a Session that
      had been pruned away entirely. A merely closed Session carries strictly more
      information than a pruned one, so it now reopens through
      SessionStore::reopen() (which stays narrow: only a Session closed as done,
      and never while another open Session exists for the task). Requires
      voku/agent-session ^0.6.3.
    • RunVerificationReceiptStore::record() refused any receipt whose implementation
      snapshot differed from the stored one, so workflow close failed forever on
      evidence that no longer matched the code. A newer implementation of the same
      Run and the same approved Contract now supersedes the previous receipt and
      carries the replaced attestations in a supersedes chain (receipt schema 1.2),
      so nothing that was attested is lost. A different Run or Contract is still
      refused, and re-recording an identical receipt stays idempotent.

v0.18.2

Compare Source

Added
  • Publish immutable deterministic WorkflowPromptEnvelope projections and the read-only WorkflowPromptService::startTask() / continueTask() embedding boundary, including current Contract/Run/Recall lineage, owner disagreements, canonical next action, and explicit mutation authority without parsing CLI prose or mutating workflow state.
  • Track acceptance-criterion observation coverage as durable Contract-side semantics without creating a second Session/execution evidence authority.
Changed
  • After the exact task Contract has been explicitly approved, ordinary review acknowledgement and Learning disposition are model-owned command-template work by default; Contract changes, accepted risk, destructive/irreversible actions, and genuinely new product intent remain human authority boundaries.
  • Keep the HTML review workbench visible through neutral review_presentation metadata even when review acknowledgement is delegated post-approval, and retain WorkflowHumanDecisionService for stricter/manual hosts.
Fixed
  • Restore margin under the bounded agent-discipline context budget after navigation/tooling guidance expansion.
  • Keep workflow prompt-envelope runtime guards fail-closed and PHPStan-valid while preserving immutable deep-snapshot digest provenance.
Validation
  • PR #​306 passed PHP 8.3/8.4/8.5 CI, diagnostics, PHPStan/project rules, installed release-set/refactor lifecycles, governed execution-contract dogfood, deterministic slop review, and self-shape before merge.
  • PR #​309 merged the typed prompt-envelope boundary after exact-head lifecycle/PHPUnit/PHPStan verification; the subsequent context-budget and runtime-guard fixes plus acceptance-observation regressions are included in this release target.

v0.18.1

Compare Source

Added
  • Add the read-only WorkflowTransparencyService / TaskTransparencyProjection boundary so hosts can answer what the Contract approved and excluded, which repository paths changed since the Contract baseline and which of those are outside approved scope, what implementation snapshot is current, what context was skipped or omitted, and what the exact current-or-stale review report found. Every section keeps its authority class; nothing in the projection can declare implementation complete or an acceptance criterion satisfied.
  • Add agent-loop workflow transparency <task-id> [--format text|json] for inspecting that projection without a host.
  • Add typed WorkflowContextCommand::coverage() and WorkflowReviewReportReader::detail(), so context skipped/omitted facts and exact review findings are consumable without parsing rendered context lines or review artifacts.
Changed
  • Contract scope matching now lives in one owner object (ApprovedScope) instead of being answered privately inside WorkflowReportCommand. The report's outside_approved_scope semantics are unchanged.
Fixed
  • Keep the historical public edit replay portable to standard PHP memory limits by
    passing its explicit 512M semantic agent-map budget through the real edit path.

v0.18.0

Compare Source

Added
  • Publish the hardened external-execution authority contract: changed Git candidates, workspace artifacts, deterministic validation evidence, and human-owned Attention transitions are accepted only through current owner-validated evidence bound to the exact Task, Run, Contract revision, execution plan, stage, attempt, and candidate lineage.
  • Add a bounded ExecutionEnvironmentObservation / ExecutionEnvironmentTool API for optional runners. Host, tool, network, and remote-write facts are projected as explicitly untrusted runtime data; arbitrary environment variables, binary paths, credentials, provider policy, and workflow authority remain outside the boundary.
  • Add the typed WorkflowHumanDecisionService / projection boundary for non-CLI adapters to record only the currently-authorized contract approval, exact review acknowledgement, or Learning disposition through existing owner stores.
Changed
  • Compiled Recall output superseding is now implemented by voku/agent-recall-compiler ^0.13.13; Loop retains orchestration timing and mount-point ownership without carrying a duplicate superseding implementation.
  • Dogfood helpers and architecture-validation classes used only by development gates live outside production autoload; voku/itp-context is a development-only evidence dependency.
  • Advance the dev-main Composer branch alias to 0.18.x-dev.
Fixed
  • Include the 0.17.2 host-work ordering correction: mutation-authorized governed Runs expose implementation work before finish-owned validation and review, so pre-change review evidence cannot block the approved mutation.
Validation
  • The release target contains the merged execution-authority, owner-boundary, bounded-environment, human-decision, and host-work convergence regressions and must independently pass PHP 8.3/8.4/8.5 CI, PHPStan/project rules, diagnostics, installed release-set and refactor lifecycles, governed execution-contract dogfood, deterministic slop review, self-shape, AccessLint, and review checks before tagging.

v0.17.2

Compare Source

Fixed
  • Mutation-authorized governed runs now return a host_work next action before
    finish-owned validation and blind-spot review. This prevents finish from
    producing a pre-change review report and requiring its acknowledgement before
    the approved implementation can begin.

v0.17.1

Compare Source

Changed
  • Require voku/agent-recall-compiler ^0.13.11, making the Recall-owned execute-plan-with-blind-spot-check L1 recipe part of the supported Loop release set instead of depending on opportunistic Composer resolution.
  • Document selection of the Recall-owned blind-spot-first execution recipe without copying its semantics into Loop, and move prompt-primitives installed-consumer dogfood to exact released Recall 0.13.11.
CI
  • New release tags must point at a commit whose own CHANGELOG.md already contains that release section; existing historical tags remain idempotent when their marker still names the exact immutable target.
Validation
  • PR #​273 must pass the repository's PHP 8.3/8.4/8.5 CI, PHPStan/project rules, installed release-set and prompt-primitives dogfood, execution-contract/self-shape checks, and other required branch protection checks before merge.
  • Prompt-primitives dogfood installs exact agent-recall-compiler 0.13.11, proves its distributed catalog contains execute-plan-with-blind-spot-check, and proves agent-loop workflow plan accepts the Recall-owned L1 recipe without a private copy.
  • The dev-main alias was independently corrected to 0.17.x-dev on main by commit 0905d82171c9334def2ef08beb52285a82fb3ac8 before this release; it is a release precondition, not a change claimed by PR #​273.

v0.17.0

Compare Source

Added
  • Publish the typed governed external-execution protocol for optional process hosts: immutable execution profiles and plans, ExecutionGateway, bounded stage bundles, provenance-bound stage results and handoffs, typed Attention, exact-stage projections, and idempotent result acceptance. External runners may execute candidate work, but only agent-loop accepts governed transitions and owns final deterministic verification.
  • Add fixed-contract transactional consumers for released agent-map rename/removal plans, including method, property, class-constant, class/function/property/class-constant rename families and dedicated installed-consumer lifecycle dogfood.
  • Add the governed host front door, human-review artifacts, review acknowledgements, proportional-governance measurement, recovery/convergence evidence, and repository-owned host policy/runtime projection surfaces.
Changed
  • The governed lifecycle now exposes explicit manual, surgical, standard, and hardened execution profiles while preserving manual as the default. Profile selection is Contract-bound and frozen once its governed Run exists.
  • Execution state uses per-task serialized acceptance and deterministic submission identities so retries are idempotent and concurrent submissions cannot discard already accepted history.
  • Repository workflow guidance, quick-start, lifecycle, manifest and host activation surfaces now converge on owner APIs, canonical next actions, bounded evidence, and recovery-safe close semantics.
Fixed
  • Contract revision/supersession clears stale execution-profile selection before replacement Run preparation; persisted candidate revisions survive projections; StageResult normalization no longer breaks idempotent replay; and workflow close can refresh a complete manifest without re-entering stale execution-plan preparation.
  • Refactor consumers fail closed on stale provenance, mismatched source hashes/ranges, unsupported plan roles and non-atomic publication; dedicated post-apply verification proves current Map evidence and target absence.
Validation
  • PR #​270 passed PHP 8.3/8.4/8.5 CI, PHPStan, project PHPStan rules, deterministic slop review, governed execution-contract dogfood, self-shape, installed release-set and refactor lifecycles, AccessLint and CodeRabbit on exact head f29be4faf0fccb4fabf4646bb77bea7cc8bfb665 before squash merge to 1f46648d4fb928aa256d5b6be6ac0f80f1a77d0e.
  • The accumulated post-0.16.6 release set includes the released agent-map 0.8.x fixed contracts and the matching transactional agent-loop consumers, each proven through clean installed Composer consumers rather than sibling-checkout assumptions.

v0.16.6

Compare Source

Changed
  • Requires voku/agent-session ^0.6.1, whose owner API can rehydrate pruneable working memory at an exact already-authoritative Session identity.
Fixed
  • workflow approve now resumes an existing governed Run after its bound pruneable Session disappears by recreating that exact Run-owned Session ID. It no longer generates a fresh date/random Session and then collides with the Run's durable identity.
  • Resume refuses a different active Session for the same task and refuses a surviving non-active bound Session instead of silently rebinding durable Run lineage. New Contract revisions still use the existing supersession path.
Validation
  • The regression binds a Run to historical Session 2001-02-03-abc-123-r1-deadbeef, removes working memory, reruns workflow approve, and proves both Run ID and Session ID stay unchanged. A second regression proves a conflicting active Session cannot steal that Run.
  • PHP 8.3/8.4/8.5, PHPStan, project PHPStan rules, diagnostics, acceptance/prompt candidate dogfoods, installed release-set, execution-contract, slop review, self-shape, AccessLint and CodeRabbit were green on the exact merge candidate.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 7a3ecab5-e403-400f-8bd3-00bf5360460b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mergify

mergify Bot commented Sep 13, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@renovate
renovate Bot force-pushed the renovate/voku-agent-loop-0.x branch from 7cea423 to 98c44f9 Compare September 13, 2026 22:19
@renovate renovate Bot changed the title Update dependency voku/agent-loop to v0.20.8 Update dependency voku/agent-loop to v0.20.9 Sep 13, 2026
@renovate
renovate Bot force-pushed the renovate/voku-agent-loop-0.x branch from 98c44f9 to 8c1b197 Compare September 14, 2026 00:36
@renovate renovate Bot changed the title Update dependency voku/agent-loop to v0.20.9 Update dependency voku/agent-loop to v0.20.10 Sep 14, 2026
@renovate
renovate Bot force-pushed the renovate/voku-agent-loop-0.x branch from 8c1b197 to 0fd20c4 Compare September 14, 2026 16:12
@renovate renovate Bot changed the title Update dependency voku/agent-loop to v0.20.10 Update dependency voku/agent-loop to v0.20.11 Sep 14, 2026
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants