Changelog
Complete release history and notable changes for ivar.
The list is generated from conventional commits by release-plz and is fetched from the ivar repository.
Added
Changed
- breakingfix and lock the crate's lint debt(#112)
Fixed
- repoRemove guarded worktrees and purge the graph on repo remove(#110)
- sessiona detached session launches the provider ivar would have launched(#105)
- allow canonical hall source writes(#104)
- treat squash-merged branches as delivered(#101)
- copy symlinks correctly when adding skills(#100)
- Unblock feature teardown, plan progress, and non-tty session start(#97)
Added
Added
- move working documents into the feature directory(#81)
- open the generated workspace in the editor(#80)
- complete feature names in OMP and generate multi-root workspaces(#79)
- route omp through Ivar's OAuth flow(#78)
- add OMP profile command bridge(#76)
- task packets carry literal code, not descriptions of it(#74)
- packets declare the blast radius they must defend(#73)
- support draft pull requests in deliver(#72)
- sessionrefuse commits on a default branch(#69)
- deliverconfigure pull request metadata(#68)
- mcpPersist OAuth client secrets locally for OpenCode(#65)
- providersAdd OMP (Oh My Pi) harness provider support with native commands, skills, `mcp.json` auth lifecycle rendering, pre-tool guard hooks, and profile-scoped OAuth broker integration(#65)
- architectureProvider-first facade boundary in `src/providers` unifying launch contracts, MCP configs, managed artifacts, guard outcomes, and credential adapters across Claude Code, OpenCode, and OMP
- syncShared multi-provider instruction reconciliation with joint `AGENTS.md` ownership between OpenCode and OMP
Changed
- mcpbreakingclose the transport vocabulary and publish a manifest schema(#77)
Documentation
- commandsmark waves complete in the plan, drop the run receipt lifecycle(#67)
Added
- hallappend 'For AI Agents' directive block to HALL.md(#48)
Fixed
- harnessConsume $ARGUMENTS in every command that declares one(#46)
Changed
- mcpbreakinghall-qualified MCP server names at every provider boundary(#44)
Added
- executeadopt provider-native run receipts(#34)
Documentation
- harnessAlign the shipped commands with what the CLI does
- cliSay what session stop and prune actually do
- add a trademark policy(#32)
Fixed
- planPrefix scaffolded write_contract paths with the repo name
- featureMatch promote's behaviour to its documented contract
Added
- repoResolve duplicate-only diverged branches with repo pull --resolve
- repoAdd --diagnose to repo pull for diverged branches
Other
- ivar-run-domain-cutover(#28)
Added
- installPoint the installer at the published releases
Documentation
- Document AUR installation and the post-release pipeline
Fixed
- releaseShip the asset layout the install script fetches
Added
- installadd canonical POSIX-sh installer with offline harness
- executescope completion evidence to the current plan revision
- executeadopt a complete revised graph via stable-id replan merge
- executecarry session provider into preparation
- executeresolve provider from caller session
- executepersist workstream targeting in plans
- deliverdeliver only verified feature roots
- featureintegrate nested leaves into parents
- featureobserve protected pull request merges
- gitstage verified local integrations
- featureguard partial integration per promotion
- featureexpose and reparent nested subfeature trees
- featurederive nested tree health
- actionrun confirmed integration checks
- manifestconfigure verified integration
- featurepersist nested lifecycle evidence
- featuremodel nested integration evidence
- featureMake every verb read the base(#13)
- executeEarn done by producing something
- gitRead HEAD and the paths a commit range changed
- progressSay which repo a fetch is waiting on
- relationsadd guided repository context workflow
- sessionderive instructions from HALL.md
- actionsmaintain hall instruction topology
- configreconcile canonical hall instructions
- sessioncontinue a job across providers
- executeAudit the write contract against the worktrees
- gitReport which paths in a worktree changed
- executionDerive board status from its workstreams
- executeJournal that a harness cannot ask before it launches
- procFeed a streamed child on stdin
- harnessMaterialise the per-session write guard
- harnessAdd the headless execute command and stream parsing
- executeRender an executor's prompt from the plan
- executeChoose provider, model and agent from the graph
- procAdd a streaming spawn for line-protocol children
- sessionStart a discovery session when no feature is named
- featurelet create name a branch its feature name cannot spell
- promoteadopt a branch that already exists
- setupcomplete the setup-script environment contract
- delivergate delivery on the plan approval gate
- doctordiagnose workflow command drift
- commandsbootstrap workflows during setup
- syncmaterialise official workflow commands
- commandsreconcile managed workflow files
- commandsembed official workflows
- commandsadd provider command paths
- migrateAdd the `ivar migrate` verb the error text already promised
- colorApply the colour decision to failures and warnings
- procwire port discovery into session connect
- closingport discovery via /proc, lazygit view-dir test, drop unused deps
- planrefuse plan approve execution-graph, naming the execute path
- verbsimplement repo setup/upstream, feature prune, plan status, provider add
- sessionimplement stop, prune, and relay as a verb
- deliverrestore PR creation with part-of sibling linking
- executeimplement approve, tick, guard-check, reply
- skillimplement sync, add, update, remove, detach, status, doctor
- gitclone with auth via the credential helper and test the cascade
- gitadd GitHub auth cascade and credential helper
- skilladd skill domain, sync planner, and golden vectors
- clideclare full v1 surface — all ~20 new CLI variants wired to stub actions
- storewire v1→v2 board migration into execution board store
- ivar-gapsimplement remaining bifrost gaps(#1)
- hallimplement status, doctor, cleanup, and provider list
- skilllist and create hall skills
- planscaffold, list, and show SPDD artifacts
- sessionview dir, harness spawn, and master-detail TUI
- featureimplement create, list, promote, demote, status
- featureadd domain types and store persistence
- repoimplement list, add, remove, pull subcommands
- manifestadd with_repo_added and with_repo_removed mutation helpers
- gitadd fetch and list_branches to Git trait
- Implement ivar sync
- storeAdd the setup-script receipt, and move the .gitignore writer here
- harnessKeep an ivar-managed block in each harness's instruction file
- gitAdd the git module — git2 for reads, the binary for mutations
- infraAdd the subprocess boundary
- Implement the hall data layer and ivar init
Fixed
- executereapprove invalidated graph gates
- harnessscope the OpenCode guard to direct mutation tools
- harnessexport the OpenCode guard plugin as a function
- harnesspin the OpenCode executor to its session view dir
- infrakeep a spawned child's PWD in step with its cwd
- gitname the config commands when git has no identity
- featurevalidate every repo before promoting any parent
- infradrain a streamed child's stderr while reading its stdout
- featurereport the pull request url on a missing merge commit
- executerewrite targeting only at canonical headings
- executepersist plan-authored selectors to the board
- executecomplete session provider targeting
- executelaunch the session-selected provider
- featureround-trip integration state in previews
- featureclassify integrated close outcome
- storesupport versioned migration baselines
- releasepublish only merged release prs
- executeSay why a tick could not launch anything
- executeHand the executor the whole operation entry
- executeRefuse a graph the plan cannot back before it is approved
- planTell plan authors the shape the executor parses
- executeSay when a tick blocked every workstream it found
- executeAudit a run against the commit it started from
- deliverAsk the remote whether the work is pushed
- gitRecord a push git will not record itself
- deliverKeep the PR urls the sibling pass reads
- deliverAsk gh for a PR url the way gh gives it
- gitGive a hall's bare clone remote-tracking refs
- gitAnswer the operation git appends to a credential helper
- featureReclaim the prefix dir a slashed branch leaves behind
- termFall back when a pty answers zero columns
- relationssurface executor instruction warnings
- clippysatisfy the -D warnings gate
- tuiScroll with the wheel, and let a dead shell be left
- syncLift the read-only guard while a setup script runs
- fsRestore only the owner write bit when lifting a read-only guard
- tuiSize and resize the shell to the panel it draws in
- tuiRender the shell's colours, and mark a shell that has exited
- tuiMove the navigation prefix off Ctrl+B and make it configurable
- tuiSend the editing keys and control chords a shell needs
- tuiKeep the terminal emulator's state across feeds
- tuiUnfreeze the feature view when a shell falls silent
- planaccept a plan path projected through a session view dir
- executeCompare a changed path in the shape a contract names
- harnessLeave no permission prompt nobody can answer
- executeGive the executor the operation, not its name
- executeLet a finished wave hand the board to the next tick
- harnessParse the OpenCode event shape 1.18.16 emits
- harnessInvoke opencode with flags it accepts and a prompt on stdin
- executeMake tick launch the provider it only pretended to
- sessionGive the agent a real .claude dir it actually reads
- testsPass session start's feature as a positional
- testsgive the outside-a-hall test a cwd outside a hall
- lintclear the clippy gate across the v1 surface
- gitremove stale debt comment claiming infra::github does not exist
- boardcomplete execution board v2 schema bump
Other
- gitignoreIgnore local agent settings
- conductFix the reporting paragraph and update the address
- cargoCorrect the claim that the crates.io name is reserved
- securityAdd a security policy
- installDocument install paths that work today
- licenseConsolidate the dual licence into Apache-2.0
- executecorrect the replan merge doc to describe the refusal
- clipin replan's expanded input contract
- executeprotect completed workstreams from accidental removal
- executeextract graph resolution into a shared resolver
- featurecanonicalise the worktree the shell reports back
- planrestore the drift clause on the fingerprint helper
- cliname the prepare args for their verb
- architecturerefuse a unit test that compiles nowhere
- storemove the facade tests onto their owners
- actionshare the hall and session fixtures
- actionshare the worktree environment core
- featuresplit integrate into orchestration and plumbing
- executemove wave planning beside the launcher
- actionlet pull own the smart fetch sweep
- executelet plan_ops own the operation parser
- plangive the facade the shared artifact helpers
- gitroute the captured reads through run
- infragive the streaming runner its own module
- domainmove the write contract out of the board
- tuigive the scrollback decoder its own module
- featurecollapse the checks lookup and the blocker walk
- featuredrop suppressions that outlived their reason
- domaincompile the integration invariants
- executetrack rewritten plan blocks with a flag
- contributingdrop the Signed-off-by requirement
- featurefmt nested integration
- featurepolish nested integration acceptance
- featurecover nested subfeature integration
- workflowautomate nested subfeature coordination
- executeAsk who runs what before the board is prepared
- simplify session canonical read and sync label
- relationscover canonical context lifecycle
- apply rustfmt to instruction topology code
- layoutdistinguish hall instructions from aliases
- tuiName what capturing the mouse costs
- Scope the read-only guarantee to the worktree root
- make the lenient path resolution and write check explicit
- teach the workflows the session plan path and continuation
- State what the execution guard cannot see
- execute,harnesssplit tick and guard into focused modules
- unitrelocate tests from modules added on main
- testreflow relocated action test modules
- architecturemap the split tree, test layout, and retained exceptions
- tuiseparate the concrete PTY adapter from the generic driver
- harnessisolate MCP config materialisation
- harnessseparate the shipped-command catalog from reconciliation
- infraextract Linux port attribution from subprocess execution
- infrasplit filesystem capabilities into io, symlink, guard
- actionsplit delivery into repos, preview, and pull requests
- actionsplit sync internals behind one verb
- actionsplit hall verbs into one file per command
- git,storeextract focused error submodules
- storesplit manifest into model, persistence, and error
- domainsplit feature domain by concept behind a facade
- architectureenforce centralized test layout and relocated layering
- unitrelocate action test modules under tests/unit
- unitrelocate foundation test modules under tests/unit
- supportcentralize unit and integration scaffolding under tests/support
- executeDescribe the graph schema the parser accepts
- executeExtract the plan's Operations parser
- sessionSay how a discovery session is created
- sessionCover discovery start, conversion and the relay refusal
- sessionallow indexing in the hook tests
- cliconvert args to inputs by exhaustive destructuring
- commandssimplify slash-name assertion
- commandsname each workflow's slash command
- commandssimplify command reconciliation
- commandscomplete workflow bootstrap coverage
- commandsdocument shipped workflow ownership
- Add concepts, getting started, guides and the glossary
- referenceGenerate the command reference from clap
- cargoReplace two stale rationales with what is actually true
- depsdrop six unused dependencies and dead github_auth_url
- boardcover WriteContract, seq, event_id, and provider fields
- order skill module declarations
- deduplicate worktree-state counting and drop dead driver helpers
- apply rustfmt
- simplify session loop, pull outcome, and doctor probing
- Add the Rust crate skeleton, toolchain pin and lint policy
- Add the offline pull-request gate and the release workflow
- Record the stack decision, architecture and format contracts
- Add the README, licences and contribution rules
- Initial commit