Opair change log
2.1.0
Security fixes
New features
Bug fixes
Other changes
- config: default enablers to xlarge model
- tools: help agents understand post-edit state better
- tools: help agents understand failed edits better
2.0.0
Breaking changes
New features
Bug fixes
Other changes
1.2.0
New features
Bug fixes
Other changes
1.1.1
Bug fixes
Other changes
1.1.0
New features
Bug fixes
- loops: add missing find tools to loop configs
- loops: grant mcp access to document and plan
- loops: grant gh access to document and plan
1.0.1
Bug fixes
1.0.0
Breaking changes
Bug fixes
- www: latest download links
- www: fix bad redirect directives
- www: fix bad redirect directives (hopefully)
- models: make sonnet default model for anthropic
- models: make luna default model for openai
- cmd: better Esc key handling (again)
Refactorings
Other changes
- www: remove redundant styles
- docs: better install instructions
- docs: better configuration docs
- prompts: clarify tool permissions in system prompt
- prompts: a couple more driver/navigator switching hints
0.11.0
Security fixes
New features
Bug fixes
Other changes
- www: update change log
- release: link to www-hosted config docs in post-install info
- mcp: change github redirect uri port
0.10.0
Security fixes
New features
Other changes
- www: update change log
- www: remove redundant styles
- docs: add more documentation links to readme
- www: redirect go to www
- scripts: fix the go-import deploy script
0.9.0
Security fixes
New features
Bug fixes
- www: changelog for 0.8.0
- www: re-order configuration and installation in nav
- cmd: stop collapsing multiple spaces in user input
Other changes
0.8.0
New features
Bug fixes
- ci: add screenshot to wwwgen
- ci: www is a worker, not pages
- www: redirect root path to index.html
- www: multiple h1 elements on 404 page
- ci: exclude humans.txt from check-www
Other changes
- docs: www.opairdev.org
- docs: remove bold claim about hot-reloading
- www: sitemap.xml, robots.txt, humans.txt
- www: favicon
0.7.0
New features
Bug fixes
- cmd: reliable detection of git root path
- tools: honour
project-ignorein findInProject - cmd: commit conversation entries in smaller chunks
- cmd: sane newline handling on navigator mode messages
- tools: delete gitAdd, gitCommit, gitReset
Other changes
- docs: mention document role
- docs: philosophy, tools
- docs: tweak example config
- prompts: clearer document prompt
- docs: config
- docs: minor fixes
- docs: commands
- release: linux packages
- docs: remove content links from philosophy doc
- docs: installation
0.6.0
New features
Bug fixes
- cmd: get builds working on linux
- loops: missing wiring for gitShow
- cmd: stop bricking session when context window is exhausted
Refactorings
Other changes
- repo: add .env.auth to .gitignore
- tools: delete findInProjectWithDotfiles
- docs: tweak readme
- ci: lint and run tests
- docs: fix bad link
- ci: use make targets
- ci: add make to shellcheck image
- tests: speculatively fix flaky tests in ci
- tests: speculatively fix flaky test
- tests: speculatively fix flaky test
- tools: better (hopefully) descriptions
- release: add missing configs
0.5.0
New features
Other changes
- docs: add
brew trustto readme - docs: tweak homebrew instructions
- config: enable reasoning in enablers driver and navigator loops
- build: add llamacpp postinstall instructions
- build: mention authentication env vars in postinstall notes
0.4.3
Other changes
0.4.2
Bug fixes
Other changes
0.4.1
Other changes
- prompts: more system guidance
- build: copy example configs in release packages
- build: add post-install instructions for homebrew
0.4.0
Security fixes
New features
- cmd: add cache hit rate to status area
- tools: convert, ffmpeg, ffprobe, identify, magickConvert, svgo
Bug fixes
- loops: give driver mode access to replaceInProject
- providers: hide cache status for enablers provider
- cmd: only reject tool calls once
- cmd: cache status is per session not per message
- cmd: tolerate empty git branch in system prompt
- cmd: reliable git branch in welcome message
- tools: clearer descriptions for the review tools
Other changes
- cmd: delete nonsense cache nudge
- cmd: tweak nudge messages
- build: goreleaser scaffolding
- cmd: undo annoying wordsmithery
- tests: fix flaky filesystem watcher test
- build: source correct secrets in publish script
- docs: clean up some inaccuracies in the readme
- build: force gitlab token
- repo: ignore plans dir
- docs: reclassify old commit in change log
- build: stop building universal binaries
0.3.1
Bug fixes
- tools: sane fix handling for linters/formatters
- tools: fallback to stdout for error output if stderr is empty
- install: correct arg for deepseek install script
Other changes
- prompts: better tool descriptions
- prompts: try to reduce the mansplaining a little bit
- build: add shellcheck target
- providers: use luna for session title in openai setups
0.3.0
New features
Bug fixes
- cmd: separate nested loop messages during streaming
- tools: better summaries
- tools: add missing tools to driver/navigator loops
- cmd: retain completed tool invocations on interruption
- cmd: stop bricking session when context window is exhausted
Refactorings
Other changes
- prompts: tweak the review diff prompt
- prompts: tweak the plan prompt
- scripts: tweak install script output
- config: increase enablers plan/review reasoning effort to "high"
- install: openai installer
- install: anthropic installer
- install: delete blank echo output
- install: deepseek installer
0.2.0
Security fixes
New features
- tools: shellcheck
- tools: chmodProjectFile and chmodProjectDotfile
- loops: ditch the automatic loop
- cmd: welcome message
- cmd: allow j/k as well as up/down when selecting answers
- cmd: nested loop status area
- cmd: watch project in navigator mode
- cmd: /resume
- tools: reviewCommit
- tools: gh
- tools: reviewPR
- providers: anthropic and openai
Bug fixes
- tools: stop exposing non-functional tools to the agent
- cmd: stop inserting spurious blank lines
- cmd: nicer welcome message formatting
- cmd: sane message appending
- cmd: sane message merging
- cmd: dedupe tools in welcome message
- tools: correct gitStatus summary
- cmd: proper keyboard input for the question area
- cmd: stop clipping tall areas
- cmd: failover race condition
Refactorings
- tools: use full answer text in askQuestion
- tools: push more tool declarations into json schema
- llm: extract openai/common protocol
Other changes
- tests: fix env var parsing
- docs: remove blank lines
- docs: tell the agent to stop editing HISTORY.md
- cmd: clear screen at startup
- tests: fix flaky commands test
- cmd: tweak welcome message
- cmd: move the status
- llm: set include_usage:true on all providers
- prompts: tweak the system and plan prompts
- install: target default dirs with algolia installer
- cmd: --version
0.1.0
New features
- tools: elixir tooling
- tools: php tooling
- tools: .NET and Ruby tooling
- tools: python tooling
- tools: clang, cmake, conan
- tools: pnpm
- tools: go fmt, go mod, gofumpt
- tools: rust tooling
- tools: limit and offset params for read tools
- tools: allow pre-approval of remaining project writes
- cmd: slash commands autocomplete
- loops: automatic
- loops: plan
- tools: askQuestion
- cmd: make up/down arrow keys work in input area
- config: reasoning effort config
- tools: yarn
- tools: npm and npx
- tools: mise
- loops: match status to loop activity
- tools: fine-grained read permissions, including dotfiles
- llm: read context length from /v1/models
- cmd: /review-diff
- llm: support algolia enablers provider
- tools: replaceInProject
- tools: fine-grained write permissions and approval
- tools: gitShow
- cmd: token counting
- config: role-based model assignment
- llm: support kimi k3
- cmd: response streaming
- cmd: use Esc to cancel in-flight requests first, clear input second
- cmd: compaction slash command
- tools: golangciLintRun
- tools: make
- tools: goBuild, goTest, goVet
- tools: reviewDiff
- tools: grepProject
- tools: gitGrep
- tools: gitCommit
- tools: gitReset
- tools: gitAdd
- tools: deleteProjectFile
- tools: createProjectFile
- cmd: shift+tab to toggle mode
- tools: editProjectFile
- cmd: nicer output formatting
- cmd: model switching
- cmd: Ctrl+D to quit
- cmd: :q to quit
- cmd: quit commands
- tools: gitLog
- tools: gitDiff
- tools: gitStatus
- tools: listExternalDirectory
- tools: listProjectDirectory
- tools: readExternalFile
- cmd: session log
- cmd: render cursor
- cmd: sidebar
- cmd: status bar
- cmd: wire in readfile tool
- tool: readfile
Bug fixes
- cmd: move errors to conversation area
- cmd: stop stacking mode-switch messages
- cmd: fix wrapping of long lines in question area
- cmd: speculatively fix colliding stream content
- deepseek: map reasoningEffort to thinking
- cmd: block input after approval response
- cmd: wire in approvals to /review-diff slash command
- cmd: propagate compaction errors
- cmd: increase compaction timeout to 5 minutes
- tools: correct summary for git diff --stat
- cmd: wire in slash command streaming
- llm: use none instead of off for enablers effort
- tools: correct summary for git log --oneline
- cmd: sane pasting of multi-line input
- cmd: wrap agent-invoked tool output
- cmd: sane Esc key handling
- cmd: replace "..." with "…"
- cmd: stop dumping errors in the status area
- cmd: better window resize handling (but still not perfect)
- llm: add reasoning content to enablers provider
- cmd: wrap tool output
- cmd: accept ~/ paths for all env vars
- cmd: fail when api keys are missing
- llm: enablers provider must fail if vault read fails
- prompts: strictly one system prompt as message 0
- cmd: sanely report cache usage
- tools: stop counting nested loop tokens
- cmd: reset token count on compact
- cmd: clear tool approval prompt as soon as input is received
- tools: correct summary on gitGrep
- cmd: append AGENTS.md to system prompt
- session: protect configBaseDir with a mutex
- cmd: give cancelled tools a decline response
- cmd: make compaction cache-friendly by default
- tools: stop summarising reviewDiff output
- cmd: fix tool output indentation
- cmd: fix weird
(s))artifact in edit summary - cmd: sane Esc-to-interrupt semantics
- cmd: stream tool summaries and nested loop messages
- cmd: stop repainting entire history on every refresh
- kimi: reasoning_effort:high is too much reasoning
- kimi: reasoning_effort:max is too much reasoning
- cmd: restrict height of tool preview output
- cmd: replace tabs with spaces in output
- cmd: stop long preview lines from wrapping
- cmd: stop input area from painting over conversation area
- loops: add make and go tools to both modes
- cmd: bottom-anchored height bug
- cmd: summarise tool output in ui
- cmd: sane rendering at bottom of viewport
- cmd: constrain output line width
- prompts: better driver and navigator prompt separation
- cmd: better keyboard input
- tools: force failure on git editor invocations
- tools: per-tool preview logic
- cmd: handle n response to write tool prompt
- cmd: unify conversation history
- cmd: scrollback rendering bugs
- llm: ensure reasoning content is propagated
- cmd: correct rune length for emojis
- deepseek: disable thinking on flash for tool calling
- cmd: clear input before quitting with Ctrl+C
- cmd: clear input on Esc keypress
- cmd: stop using Ctrl for input
- cmd: wrap input before it hits the sidebar region
- llm: allow empty content in tool calls
- cmd: retain failed messages
- cmd: saner agent loop
- cmd: better error reporting
- tools: separate internal tools from session tools
- cmd: accept shift+backspace
- cmd: preserve last shell prompt in scrollback
- cmd: keep session history in terminal scrollback
- cmd: stop llm looping after first tool response with content
- prompt: fail if template vars are missing
- tool: prevent symlinks escaping from local project structure
- cmd: add 60 second timeout to llm requests
- docs: correct prompt/tool directory layouts
- cmd: use ctrl+d and ctrl+n for mode switching
Refactorings
- loops: swap driver/navigator semantics
- loops: move reasoningEffort config from models to loops
- tools: migrate some tools to json-only definitions
- repo: enable gofumpt linting
- cmd: rename LoopConfig to Loop and Provider to ProviderConfig
- tools: rename grepProject to findInProject
- cmd: make scrollback a dumb line renderer
- cmd: separate scrollback from visible conversation area
- cmd: encapsulate message representations inside conversation entry type
- cmd: ditch bubbletea
- cmd: render function
- cmd: input area type
- cmd: status area type
- cmd: keyboard type
- cmd: terminal type
- tools: rename readfile to readProjectFile
- cmd: extract conversation from viewport
- cmd: extract keymap from model
- cmd: extract viewport type from model
- cmd: upgrade to bubbletea v2
- cmd: break the tui code apart a little
Other changes
- install: script for algolia enablers local installation
- project: missing agpl header comments
- prompts: tweak system prompt
- prompts: tweak plan instructions
- docs: tidy up the readme a bit
- tools: nudge the agent about premature reviews
- prompts: clearer driver/navigator instructions
- docs: add
approveReadssetting to readme - docs: add enablers provider to readme
- llm: set User-Agent header on llm api requests
- llm: set reasoning_effort to low on enablers large model
- loops: increase reviewDiff max iterations to 128
- cmd: better labels for bytes sent/received
- llm: add xlarge model to enablers provider
- cmd: report separate bytes sent and received
- cmd: change order of status items
- loops: increase max iterations limit
- repo: stricter linting
- repo: go fmt
- docs: agent instructions
- build: add race target
- llm: add kimi-k2.6 to moonshot provider
- loops: extend loop timeout to 10 minutes
- tests: integration tests
- cmd: delete dead condition from tool loop
- docs: tweak readme
- llm: use small model for session naming
- llm: model categorisation
- cmd: blank line between messages
- tests: stop gpg signing test commits
- tool: camel case to snake case helper
- tests: missing command tests
- cmd: cap llm tool loops at 10 iterations
- prompts: add current directory to driver prompt
- repo: update ignore file
- tool: skeleton tool wiring
- mode: mode selector
- repo: source
.env - docs: flesh out local dev details
- prompts: strawman system prompts
- llm: deepseek provider
- cmd: bubbletea skeleton
- docs: initial readme
0.0.0
The dawn of time.