Releases
v0.29.0
Compare
Sorry, something went wrong.
No results found
v0.29.0 (2026-05-19)
What's Changed
chore(ci): drop unused tokio dep from devboy-secrets-ui-bin (DEV-247)
fix(secrets): address 5 PR-265 review findings (R1-R6) (DEV-247)
fix(secrets-kdbx): cross-platform path test for working-copy helper (DEV-247)
fix(ci): restore main's AuthScheme in gitlab, regen public-api baseline (DEV-247)
chore(ci): green up the pipeline — rustdoc / docs / public-api / unused deps (DEV-247)
fix(secrets-ui): point Changelog link at GitHub Releases (DEV-247)
fix(secrets-ui-bin): proper macOS Dock icon via .app bundle (DEV-247)
feat(secrets-ui): K20 — catalog binding for KDBX entries via URL + title heuristic (DEV-247)
docs(secrets-kdbx): K17 — write-surface docs in CHANGELOG + README (DEV-247)
feat(secrets-mcp): K16 — kdbx_describe_metadata + kdbx_edit_metadata MCP tools (DEV-247)
feat(secrets-cli): K15 — kdbx describe-metadata + edit-metadata subcommands (DEV-247)
feat(secrets-kdbx): K14 — metadata write-surface for KDBX entries (DEV-247)
chore(secrets-kdbx): scrub personal path from example + README (DEV-247)
feat(secrets-ui): K30 — banner highlighting locked wallets above inventory (DEV-247)
feat(secrets-ui): K29 — per-wallet unlock routing via pending_unlock_target (DEV-247)
feat(secrets-ui): K28 — wallet bar with per-wallet lock/unlock chips (DEV-247)
feat(secrets-ui): K27 — aggregate inventory across primary + extras (DEV-247)
feat(secrets-ui): K26 — load extra wallets from sources.toml (DEV-247)
feat(secrets-ui): K25 — NamedBackend + WalletList types (DEV-247)
fix(secrets-ui): K31 — scrollable layout when window shrinks (bug)
polish(secrets-ui): K23 — swap About wizard for canonical meteora.pro art (DEV-247)
feat(secrets-ui): K23 — About modal with build info, links, ASCII wizard (DEV-247)
fix(secrets-ui): K24 — wrap long revealed values in KDBX dialog (DEV-247)
feat(secrets-ui): K22 — devboy brand icon on the native window (DEV-247)
feat(secrets-ui): K21 — download KDBX attachments via native save-as dialog (DEV-247)
fix(secrets-ui-bin): drop the empty provision-input from KDBX dialogs (DEV-247)
feat(secrets-ui-bin): K19 — per-field reveal + copy in KDBX provision dialog (DEV-247)
feat(secrets-ui): Enter-to-submit + Tree default always + keyboard nav (DEV-247)
refactor(secrets-kdbx): K18 — multi-value entries per KeePass model (DEV-247)
feat(secrets-kdbx): K13 — working-copy safety, never write to original (DEV-247)
fix(secrets-ui): tree leaf shows last path segment only (DEV-247)
docs(secrets-kdbx): K11 — full KDBX feature docs + onboarding (DEV-247)
feat(secrets-ui): hierarchical tree view with collapsible groups (DEV-247)
feat(secrets-ui): top-bar search across inventory rows (DEV-247)
feat(secrets-ui-bin): surface full KDBX metadata in inventory + dialog (DEV-247)
feat(secrets-kdbx): full per-entry metadata extraction (DEV-247)
feat(secrets-cli): secrets kdbx peek subcommand for headless smoke (DEV-247)
test(secrets-kdbx): header probe example + GUI smoke instructions (DEV-247)
feat(secrets-ui): swap unlock-modal copy for the KDBX backend (DEV-247)
feat(secrets-ui-bin): StorageBackend::Kdbx with locked + unlocked variants (DEV-247)
feat(secrets-kdbx): KDBX 4 read path — open, walk, lookup (DEV-247)
feat(secrets-kdbx): new SecretSource plugin skeleton for KDBX 4 (DEV-247)
feat(secrets-ui): HCP Vault read-source + first-run onboarding wizard (DEV-247)
feat(storage): access-mask read/readwrite on [[source]] config (DEV-247)
feat(secrets-ui): vault unlock / create UI — passphrase prompt, no env var needed (DEV-247)
feat(secrets-ui): eye-toggle in the value input, drop the reveal checkbox (DEV-247)
feat(secrets-ui): provision dialog UX rework — modal overlay, links, priority order (DEV-247)
feat(secrets-ui-bin): dev screenshot mode — render provision dialog to PNG (DEV-247)
feat(token-catalog): docs_url + rotation guidance across all 11 bundled catalogs (DEV-247)
feat(secrets-ui): bind provision dialog to the token catalog (DEV-247)
docs(changelog): pin final binary sizes for the UI split (DEV-247)
docs(secrets-ui): onboarding + CHANGELOG for the GUI split (DEV-247)
test(secrets-ui): coverage for find_ui_binary + launch_gui (DEV-247)
ci(release): ship devboy-secrets-ui alongside devboy (DEV-247)
chore(npm): list devboy-secrets-ui in platform package files (DEV-247)
chore(cli): drop eframe direct dep + gui feature flag (DEV-247)
feat(secrets-ui): launch_gui spawns devboy-secrets-ui subprocess (DEV-247)
feat(secrets-ui-bin): port launch_gui + InventoryApp from devboy-cli (DEV-247)
feat(secrets-ui-bin): new bin crate skeleton for GUI split (DEV-247)
test(secrets-migrate,secrets-rotate): non-interactive branches + rotation edge cases (DEV-247)
test(doctor): per-source probe dispatcher + JSON renderer coverage (DEV-247)
test(secrets-validate): map_liveness, build_row + remaining label / fold branches (DEV-247)
test(secrets-setup): handle_cli + event renderer coverage (DEV-247)
test(cli): integration coverage for catalog status/add-url/refresh/forget/pin (DEV-247)
docs(secrets): fix wizard JSON key drift + replace hand-edit guidance (DEV-247)
test(mcp): RequestIdReply on 5 request_* + cover use_approval in leak test (DEV-247)
fix(cli): wizard consults active catalogs (load_all_with_urls) (DEV-247)
fix(cli): add-url confirms BEFORE touching known_hashes.toml (DEV-247)
feat(token-catalog,cli): SSRF guard re-checks every redirect (DEV-247)
feat(core,mcp,executor): wire ApprovalGatedResolver into resolvers (DEV-247)
docs(secrets): Gherkin BDD scenarios for the new flow (DEV-247)
chore(plugins): sync plugin manifests to workspace 0.29.0 (DEV-247)
docs: changelog for P25 + P26 + catalog polish (DEV-247)
docs(secrets): community catalog repo layout (DEV-247)
feat(cli): catalog forget + catalog pin (TOFU recovery) (DEV-247)
feat(cli): devboy secrets catalog refresh command (DEV-247)
style(cli): rustfmt secrets_setup test fixture (DEV-247)
feat(cli): devboy secrets catalog add-url command (DEV-247)
feat(cli): devboy secrets catalog status command (DEV-247)
refactor(jira): move components/fixVersions from base schema to enricher (#259 )
feat(token-catalog): bundled clickup + jira + slack catalogs (DEV-247)
fix(jira+docs): second-pass review feedback (Copilot + user) (#259 )
feat(token-catalog): bundled langfuse + ollama catalogs (DEV-247)
feat(token-catalog): bundled anthropic + gemini catalogs (DEV-247)
fix(jira): respond to Copilot + Codex review feedback (#259 )
feat(cli): proposer consults catalog env_var_patterns + env_var_skip (DEV-247)
feat(token-catalog): env_var_patterns + env_var_skip on ProviderCatalog (DEV-247)
chore(release): bump workspace to 0.28.0
feat(cli): skip ambiguous generic-segment paths in proposer (DEV-247)
docs(guide): reference page for load_default_metadata strategies (#259 )
test(jira): end-to-end load_default_metadata + enricher integration (#259 )
feat(cli): drop POSIX locale + XDG + GPG/SSH agent vars from proposer (DEV-247)
feat(jira): RecentActivity strategy via JQL search (#259 )
feat(cli): drop Windows machine vars from proposer (DEV-247)
feat(jira): MyProjects strategy via /project/search recent flag (#259 )
feat(jira): All strategy with hard cap enforcement (#259 )
feat(cli): drop CI / build / cloud-platform vars from proposer (DEV-247)
feat(jira): Configured strategy for load_default_metadata (#259 )
feat(cli): drop config / connection vars from proposer (DEV-247)
feat(jira): build_project_metadata helper — fetches issue types/components/priorities/link types/customfields (#259 )
feat(jira): MetadataLoadStrategy enum + load_default_metadata skeleton (#259 )
feat(core): PropertySchema gains anyOf — Jira enricher emits cross-project shape unions (#259 )
feat(token-catalog): add bundled gitlab catalog (DEV-247)
feat(token-catalog): rust-embed auto-discovery for bundled catalogs (DEV-247)
feat(cli): wire devboy secrets setup subcommand (DEV-247)
feat(mcp): surface approve_on_use in secrets_list/describe (DEV-247)
feat(jira): multi-project customfield enrichment + 30-project cap (#259 )
refactor(jira): move epicKey/sprintId/epicName from base schema to dynamic enricher (#259 )
test(storage): gate plugin_client tests to macOS only (DEV-247)
chore: refresh generated artefacts after P25/P26 (DEV-247)
feat(cli,docs): SetupState typed view + resume contract docs (DEV-247)
feat(cli): wizard runner for setup-secrets (DEV-247)
refactor: codex review observations — homogeneous custom_fields shape + curated jira public surface (#259 )
feat(cli): env-var to ADR-020 path proposer (DEV-247)
feat(cli): repo env-var scanner for setup-secrets wizard (DEV-247)
feat(skills): scaffold setup-secrets skill (DEV-247)
fix(jira): codex review blockers — created_by direction + duplicate field-name handling (#259 )
docs(secrets): approve-on-use protocol reference (DEV-247)
feat(core): wire SessionApprovalCache for proxy alias resolution (DEV-247)
feat(secrets-ui): add use-approval dialog widget (DEV-247)
feat(mcp): add secrets_request_use_approval tool (DEV-247)
ci: fix CI failures from epic #259
feat(storage): add approve_on_use policy to manifest schema (DEV-247)
fix(ci): macOS-only gate for git-spawn tests after probe race (DEV-247)
fix(ci): more rustdoc cleanups + real-spawn git probe (DEV-247)
fix(ci): redundant link target + LLVM_PROFILE_FILE-aware test skip (DEV-247)
fix(ci): keychain doc link + Windows gate on global-index e2e tests (DEV-247)
fix(ci): rewrite docs links to absolute GitHub + Windows tempfile gate (DEV-247)
fix(ci): macOS-gate ETXTBSY-prone tests + fix doc + readme drift (DEV-247)
fix(ci): warmup-exec workaround for ETXTBSY in 1password tests (DEV-247)
feat(core): add generic custom_fields to Issue + provider mappings (#259 )
fix(ci): UNIX-only test gating + ETXTBSY workaround in 1password (DEV-247)
docs(guide): add reference page on consuming tool schemas (#259 )
fix(jira): expand linkType with common Jira link names (#259 )
fix(jira): include Epic Link in IssueRelations (#259 )
fix(ci): rustdoc HTML tag + Windows test gates + git-on-PATH probe (DEV-247)
fix(jira): epic description returns null in get_issue/get_issues (#259 )
fix(ci): widen keychain dead-code allow + cfg-gate Windows-only items (DEV-247)
feat(jira): add get_custom_fields tool for cf_* discovery (#259 )
fix(ci): gate UNIX-only agent surface for Windows build (DEV-247)
feat(jira-mcp): expose assign_to_sprint & get_board_sprints (#259 )
fix(ci): RequestId collision + Windows UnixStream gating (DEV-247)
feat(jira): wire epic_key/sprint_id/epic_name into create/update_issue (#259 )
feat(jira): introduce field-id resolver with caching (#259 )
fix(ci): cleanup imports + intra-doc links after epic merge (DEV-247)
feat(jira): add fixVersions to create_issue and update_issue (#259 )
fix(ci): green up the pipeline for epic #247 (DEV-247)
feat(secrets-ui): per-row catalog-source chip in inventory (DEV-247)
feat(secrets-ui): inline format hint above the password input (DEV-247)
docs(secrets): translate source-plugin-protocol.md to English (DEV-247)
docs(secrets): translate agent-protocol.md to English (canonical) (DEV-247)
docs(secrets): translate local-vault.md to English (canonical) (DEV-247)
docs(secrets): translate onboarding.md to English (canonical) (DEV-247)
docs(secrets): catalog-url-sources guide + threat-model writeup (DEV-247)
feat(token-catalog): audit log + SSRF on catalog URLs (DEV-247)
feat(secrets-ui): URL trust UX — first-fetch confirm + SHA-mismatch warning (DEV-247)
feat(token-catalog): disk cache + ETag refresh for URL sources (DEV-247)
feat(token-catalog): SSRF guard for liveness probe URL (DEV-247)
feat(token-catalog): SHA256 pinning + TOFU known_hashes.toml (DEV-247)
feat(token-catalog): HTTPS-only URL fetcher with body + content-type guards (DEV-247)
feat(token-catalog): CatalogSource::Url + sources.toml schema (DEV-247)
feat(secrets-cmd): `secrets catalog validate ` CLI command (DEV-247)
feat(secrets-cmd): `devboy secrets catalog list` CLI command (DEV-247)
feat(token-catalog): bundled github.json catalog seed (DEV-247)
feat(token-catalog): bundled openai.json catalog seed (DEV-247)
feat(secrets-ui): retrieval.notes block + console_url hyperlink (DEV-247)
feat(secrets-ui): source-origin chip on the variant card (DEV-247)
feat(secrets-ui): catalog-driven regex + liveness on Save (DEV-247)
feat(secrets-ui): numbered retrieval steps in context card (DEV-247)
feat(secrets-ui): variant-picker widget for multi-tier providers (DEV-247)
feat(secrets-ui): wire token-catalog loader into InventoryApp (DEV-247)
feat(secrets): backend-driven token catalog + GUI provision flow (DEV-247)
ci: tag-driven cargo publish workflow + token docs (#250 ) (#257 )
docs(reference): regenerate tools.md after 0.27.0 bump
chore(release): bump workspace to 0.27.0
feat(cli): wire eframe window for secrets ui --gui (DEV-247)
docs: drop more DTO-restating /// stubs (#250 )
style: cargo fmt — collapse single-field struct variants (#250 )
docs: secret framework lands — README + nav + changelog (DEV-247)
test(secrets): end-to-end smoke test across 3 modes (DEV-247)
docs(secrets): source plugin protocol + echo-source example (DEV-247)
docs(secrets): MCP agent protocol reference (DEV-247)
docs(secrets): local-vault format + recovery + backup (DEV-247)
docs(secrets): manual onboarding walkthrough on Russian (DEV-247)
docs(skills): setup delegates to setup-secrets when manifest present (DEV-247)
docs: address copilot + reviewer feedback on PR #254 (#250 )
docs(skills): setup-secrets first-run wizard (DEV-247)
feat(storage): plugin lifetime contract + acceptance tests (DEV-247)
feat(storage): subprocess plugin protocol + sidecar manifest (DEV-247)
feat(mcp): "agent never sees the value" enforcement (DEV-247)
fix(mcp): wire propose_metadata + propose_new_path handlers (DEV-247)
feat(mcp): secrets_propose_metadata + propose_new_path (DEV-247)
feat(mcp): secrets_request_rotation (DEV-247)
feat(mcp): secrets_request_provision + poll_status (DEV-247)
feat(mcp): secrets_list / secrets_describe tools (DEV-247)
feat(cli): secrets rotate <path> flow (DEV-247)
feat(cli): secrets ui with backend autodetection (DEV-247)
feat(secrets-ui): GUI backend on egui — same four MVP views (DEV-247)
feat(secrets-ui): TUI discovery-import view (DEV-247)
feat(secrets-ui): TUI edit-metadata view (DEV-247)
feat(secrets-ui): TUI provision/rotation dialog (DEV-247)
feat(secrets-ui): TUI Inventory view (DEV-247)
feat(core,cli): [secrets] migration_complete flag (DEV-247)
docs: third trivial-doc strip pass via codex review (#250 )
feat(cli): devboy secrets migrate interactive flow (DEV-247)
feat(cli): doctor — non-conformant keychain path check (DEV-247)
feat(cli): devboy secrets validate (DEV-247)
feat(storage,cli): expiry persistence + rotation-reminder doctor (DEV-247)
feat(core,providers): liveness probe trait + github/gitlab impls (DEV-247)
docs: strip 150 more AST-restating one-liner comments (#250 )
feat(storage): format validation against regex / pattern_id (DEV-247)
feat(cli): pre-commit hook for unresolved @secret aliases (DEV-247)
docs: drop missing_docs lint, keep only the doc-quality ones (#250 )
feat(mcp): @secret : header rewriting for the proxy (DEV-247)
feat(executor): @secret : argv substitution wrapper (DEV-247)
feat(core): @secret : alias detection + SecretResolver trait (DEV-247)
feat(cli): doctor — Secrets in active context section (DEV-247)
feat(cli): doctor — Sources section (DEV-247)
feat(storage,cli): explicit CI mode + heuristic warning (DEV-247)
feat(secret-env-store): SecretSource over env vars + dotenv (DEV-247)
feat(secret-vault): SecretSource over Vault HTTP KV v2 (DEV-247)
feat(secret-1password): SecretSource over op CLI (DEV-247)
feat(secret-local-vault): SecretSource over UNIX-socket JSON-RPC client (DEV-247)
feat(secret-keychain): SecretSource impl over OS keychain (DEV-247)
feat(storage): source-credential recursion check (DEV-247)
feat(storage): in-memory cache with adaptive TTL (DEV-247)
feat(storage): path resolution algorithm for router (DEV-247)
feat(storage): router config loader for sources.toml (DEV-247)
feat(storage): SecretSource trait + Capabilities bitflags (DEV-247)
feat(cli): launchd + systemd-user service generators (DEV-247)
feat(secrets-agent,cli): on-demand daemon spawn from CLI (DEV-247)
feat(secrets-agent): idle-timeout zeroize + SIGTERM handler (DEV-247)
feat(secrets-agent): JSON-RPC 2.0 server + 8 ADR-023 §3.3 methods (DEV-247)
feat(secrets-agent): UNIX socket bind + peer-cred check (DEV-247)
feat(vault-crypto): public Vault API ties P3.1–P3.5 together (DEV-247)
feat(vault-crypto): macOS Keychain envelope (cfg-gated) (DEV-247)
feat(vault-crypto): BIP39 recovery envelope (DEV-247)
feat(vault-crypto): Argon2id passphrase envelope (DEV-247)
feat(vault-crypto): XChaCha20-Poly1305 AEAD wrapper (DEV-247)
feat(vault-crypto): on-disk vault file format reader/writer (DEV-247)
feat(storage): pattern_id inheritance for IndexEntry (DEV-247)
feat(secret-patterns): user-extension TOML loader + Catalogue (DEV-247)
feat(secret-patterns): hard-code 30-pattern built-in catalogue (DEV-247)
feat(secret-patterns): add SecretPattern trait + Severity enum (DEV-247)
feat(cli): add devboy secrets list and describe subcommands (DEV-247)
feat(storage): merge ProjectManifest with GlobalIndex per ADR-020 §4 (DEV-247)
feat(storage): add ProjectManifest loader for .devboy/secrets.toml (DEV-247)
feat(storage): add GlobalIndex loader for secrets/index.toml (DEV-247)
docs: address codex review on PR #254 (#250 )
feat(storage): add SecretPath validator per ADR-020 §2 (DEV-247)
feat(secrets): scaffold workspace crates for ADR-020/021/023 (DEV-247)
docs: mop up stale /skills/ refs missed in T20 (#250 )
docs(adr): address Copilot review on PR #253
docs(plugins/api): backfill confluence + fireflies + slack (35 sites) (#250 )
docs(plugins/api): backfill jira + clickup (128 sites) (#250 )
docs(plugins/api): backfill gitlab + github (170 sites) (#250 )
docs(mcp): backfill 130 missing field/variant docs (#250 )
docs(executor): backfill 77 missing field/variant docs (#250 )
docs(format-pipeline): backfill 130 missing field/variant docs (#250 )
docs(devboy-core/{config,agents}): backfill missing_docs (#250 )
docs(adr): rewrite ADR-020/021 + add ADR-023 secret store UX layer
docs(devboy-core/types): backfill 85 missing field/variant docs (#250 )
fix(proxy): incremental JSON parse — return as soon as response is complete (#250 )
docs: fix all intra-doc links + drop allow attrs (#250 )
ci+docs: rustdoc -Dwarnings job + fix breaking doc links (#250 )
docs(executor,mcp,skills): missing_docs guard + escapes (#250 )
docs(plugins/api): missing_docs guard + targeted backfill (#250 )
docs(storage,format-pipeline): missing_docs guard + targeted backfill (#250 )
fix(docs): use plain `rust` fence — rspress/shiki rejects rustdoc info-string (#250 )
docs(devboy-core): #![warn(missing_docs)] forward guard (#250 )
ci: add cargo-machete + cargo-deny + public-api drift jobs (#250 )
docs: replace fictional embed example with real Config::load + JiraClient (#250 )
docs(cli): clarify onboard_cmd bundle path is crate-internal (#250 )
chore(deny): cargo-deny config (#250 )
docs(release): clarify crates.io scope, fix MSRV, fix patch-tag wording (#250 )
docs(adr): fix ADR-022 link target — release.mdx → release.md (#250 )
chore(deps): remove unused crates flagged by cargo-machete (#250 )
chore(public-api): baselines for executor / mcp / skills (#250 )
chore(public-api): baselines for 7 API plugins (#250 )
chore(public-api): baselines for storage / assets / format-pipeline (#250 )
docs(devboy-core): record public-api audit outcome (#250 )
chore(devboy-core): capture cargo-public-api baseline (#250 )
docs: collapse two-wave plan into single coordinated release (#250 )
docs(adr): update ADR-012/ADR-018 source-of-truth path (#250 )
chore(scripts): rewrite legacy skills/ links to new in-crate path (#250 )
chore(scripts): point build-skills.sh at the in-crate skills/ tree (#250 )
chore(plugin): relink claude skills to in-crate skills/ tree (#250 )
fix(skills): point rust-embed at the in-crate skills/ tree (#250 )
refactor(skills): move skills/ tree inside devboy-skills (#250 )
fix(workspace): bump MSRV to 1.87 to match actual surface (#250 )
ci+docs: publish-dry-run job + release procedure (#250 )
refactor(bundles): move skills/bundles/ inside devboy-core (#250 )
docs(crates): per-crate README for every publishable crate (#250 )
chore(workspace): metadata + dual path/version internal deps (#250 )
docs(adr): ADR-022 publishing model + per-crate inventory (#250 )
fix(proxy): preserve stream error in JSON parse failure + cover post-body abort
fix(trace): share env-test mutex across redact and trace test modules
docs(adr): ADR-020 secret manifest + ADR-021 external sources (#248 )
fix(test): isolate events_are_redacted_before_writing from env race
docs: sync index.md with README (Jira project versions)
test(proxy): add coverage for read_json_response edge cases
style(proxy): fix rustfmt formatting
fix(proxy): use streaming body read for streamable-http JSON responses
fix(jira): address Codex review on PR #239 (DEV-238)
fix(jira): address Copilot review on PR #239 (DEV-238)
docs(reference): regenerate tools.md for project version tools (DEV-238)
chore: cargo fmt --all (DEV-238)
test(jira): cover version CRUD client + executor dispatch (DEV-238)
feat(executor): wire list_project_versions / upsert_project_version (DEV-238)
feat(jira): add ProjectVersion types + client methods (DEV-238)
release: bump 0.26.0 — SecretString sweep + analyze-usage polish
fix(analyze-usage): count MCP-mediated MR/PR/issue creates (closes #235 ) (#236 )
fix(jira): pass parent key into create_issue payload (closes #214 ) (#232 )
fix(doctor,context): stop misleading remote_config installs (closes #229 ) (#233 )
feat(security): wrap every secret in SecretString end-to-end (#225 ) (#234 )
feat(analyze-usage): metric hints + copy-pasteable share block + EN i18n (#237 )
docs(adr): mark Asset Mgmt phase 4 as pending in INDEX
docs(readme): add Codex CLI install path + drop "signed-binary" wording
docs: replace third-party codex-marketplace.com with official OpenAI docs
release: bump 0.25.0 — Claude Code / Codex plugin distribution
feat(onboard): sweep legacy devboy-* skill dirs after install (#226 )
refactor(skills): drop devboy- prefix from source — /devboy:setup (#226 )
docs(plugin): explain why short-form alias symlinks don't work (#226 )
fix(plugin): correct stale /devboy:setup -> /devboy:devboy-setup (#226 )
refactor(plugin): drop generated copies — plugin skills are symlinks (#226 )
review: address Copilot feedback on plugin distribution PR (#226 )
refactor(plugin): dedupe Codex skills via symlink to Claude tree (#226 )
docs(site): re-sync index.md after README plugin section (#226 )
feat(plugin): package devboy as Claude Code / Codex plugin (#226 )
release: bump 0.24.0 — Confluence provider + docs site rework + ADR-018 (#227 )
docs(adr): add ADR-018 — plugin distribution with agent-driven bootstrap (#226 )
fix(docs): use object-form _meta entries for adr/research subdirs (#221 )
docs(site): surface Research and ADRs in the sidebar (#220 )
docs(site): surface Confluence + Slack provider pages, README aligned for v0.24 release (#220 , #221 )
fix(docs): renumber quick-start steps + strip .md from site-relative links (#221 )
docs(site): render README at site root + sync getting-started/skills (#220 )
Feat/85 confluence self hosted knowledge base (#212 )
release: regenerate tools.md for v0.23.0 — drift gate failed
release: bump 0.23.0 — analyze-usage skill + devboy onboard / agents
docs(readme): cross-check every research-section number against the papers (#219 )
docs(readme): replace hand-wave "5–20%" with measured per-call savings (#219 )
test(agents): widen branch coverage to ≥95% target (#217 )
test(agents): cover registry, fs_util, agents_cmd, onboard_cmd (#217 )
docs(readme): keep DevBoy tools in the title — restore the tool-bundle framing
fix(agents): drop unsafe env mutation in cursor windows test (#217 )
docs(readme): rewrite — research-driven framing, real install path, surfaced papers
fix(agents): green Windows CI + document onboard/agents in root README
fix(agents): address Copilot review on PR #218 + green CI
fix(analyze-usage): address Copilot second-pass review (#216 )
fix(analyze-usage): address Copilot review feedback (#216 )
fix(onboard): recency-dominance shortcut in pick_primary (#217 )
feat(onboard): devboy onboard with profile-based skill bundles (#217 )
feat(agents): trait + 7 detectors + devboy agents list (#217 )
docs(adr): ADR-017 — Agent detection and devboy onboard command (draft)
feat(skills): split analyze-usage into thin baseline + curl-installed backend
feat(analyze-usage): full Tier-1 + Tier-2 skill (extractors, period_report, CLI, tests)
feat(analyze-usage): scaffold skill + lib/parsers (AU-01) (#215 )
fix(docs): regenerate tools.md for v0.22.0 — drift gate failed
release: bump 0.22.0 — Paper 3 tool-aware knapsack enrichment
fix(paper3): address self-review + Codex P1/P2 findings
test(paper3): QA pass — safety invariants + stress (S14)
docs(paper3): paper-3 §Deferred narrowed to replay numbers only
feat(paper3): intent-aware boost + latency/dollar penalties (S12+S13)
feat(paper3): production McpPrefetchDispatcher adapter (S11)
docs(paper3): finalize §Implementation status + §Race strategy (S10)
feat(paper3): replay validation harness (S9)
feat(paper3): tune analyze --auto-enrichment R7 rule (S8)
feat(paper3): provider value_model annotations (S7)
feat(paper3): emit PipelineEvent for prefetched calls (S5)
feat(paper3): wire speculation into SessionPipeline (S3+S4)
feat(paper3): SpeculationEngine — out-of-band prefetch dispatcher
feat(paper3): rate_limit_host (per-domain) + URL host extractor
feat(paper3): EnrichmentEffectiveness — race instrumentation
feat(paper3): project_args trait + built-in projection extractors
feat(paper3): schema v4 — speculative-execution annotations
feat(paper3): host wiring + cited_in_next_n_turns post-pass
fix(paper3): address Copilot review on 506a205
feat(paper3): count inference tool calls saved in EnrichmentEffectiveness
fix: address Copilot review on PR #209
docs(paper3): draft v1 (P-3-10)
feat(tune): --tools flag seeds [tools.*] from observed tool mix (P-3-08)
feat(paper3): enricher-effectiveness telemetry (P-3-09)
feat(paper3): EnrichmentPlanner + cross-tool invalidation (P-3-06 + P-3-07)
feat(paper3): ToolEnricher.value_model + corpus-anchored defaults (P-3-04 + P-3-05)
feat(format-pipeline): [tools.*] section in AdaptiveConfig (P-3-03)
feat(core): ToolValueModel schema for Paper 3 enrichment (P-3-02)
research(paper3): mine tool follow-up patterns from Claude Code corpus
fix(test): address Copilot review on PR #208
fix(ci): cli.md drift gate is CRLF-tolerant on Windows
fix: address Copilot review on PR #207
fix(cli): anchor cli.md drift test on CARGO_MANIFEST_DIR
ci(release): verify + attach reference docs to GitHub Release
feat(cli): auto-generate CLI reference from clap definition
feat(executor): advertise mckp in the tool-schema format enum
feat(paper2): e2e gate + migration UX + status sync (P-203-09)
feat(format-pipeline): Type-2 near-duplicate hints (P-203-10)
feat(executor): split-savings accounting on FormatMetadata (P-203-08)
feat(devboy-cli): load AdaptiveConfig and wire layered pipeline (P-203-07)
feat(devboy-mcp): JsonlSink wired to live telemetry (P-203-06)
feat(devboy-mcp): compaction-boundary hooks (P-203-05)
feat(devboy-mcp): wire LayeredPipeline + DedupCache per session (P-203-04)
feat(format-pipeline): OutputFormat::Mckp variant + executor wiring (P-203-03)
feat(format-pipeline): round-trip correctness gate (P-203-02)
feat(format-pipeline): tokenizer-aware token counting (P-203-01)
fix: panic instead of swallowing serialization errors (#72 )
chore(format-pipeline): unblock CI fmt + clippy on rustc 1.94 (#72 )
feat(tool-docs): surface MCP-only tools + factory↔catalog completeness test (#72 )
feat(cli): auto-generate tools reference (closes #72 )
docs(paper-2)+release: JTON head-to-head + bump 0.21.2
chore(release): bump workspace version to 0.21.1
feat(tune,paper-2): split dedup vs encoder savings reporting
chore(release): bump workspace version to 0.21.0
chore(devcontainer): add Linux Rust dev environment
docs(paper-2): encoder bug postmortem + configuration extensibility
feat(tune): from-claude-logs subcommand + devboy-pipeline-tune skill
feat(format-pipeline): schema v2 — profiles & hint policy
fix(format-pipeline): preserve nested array fields in deep MCKP encoding
chore(gitignore): add paper2-repro ext/datasets/artifacts/.env to ignored paths
chore(release): bump workspace version to 0.20.0
fix: address Codex review on PR #205
fix: address Copilot review on PR #205
feat(core): UserProvider trait + Slack user_profile (#177 )
feat(jira): Sprint + Structure generators/automation/delete (#198 #179 #180 )
feat(jira): add components support to create_issue and update_issue (#197 )
style(format-pipeline): cargo fmt on coverage-boost test additions
test(format-pipeline): +72 tests for coverage (85% → ≥93% projected)
fix(format-pipeline): clippy fixes for Rust 1.95 (tune CLI)
fix(format-pipeline): address Copilot review + CI failures
docs(research): Paper 2 v2 — hint guide, adaptive config, telemetry, deployment
feat(format-pipeline): Paper 2 layered pipeline — L0 dedup, L1 templates, L2 MCKP
chore(release): bump workspace version to 0.19.0
fix(jira): advertise JiraStructure category only when metadata has structures (address #202 review)
feat(jira): include accessible Structures in metadata + enrich structureId tool schemas
chore(release): bump workspace version to 0.18.0
chore(fmt): break chained trim_end_matches across lines in strip_code_fence
fix(jira): address Copilot review on #196
feat(research): Paper 1 — SWE-bench benchmark complete + reproducibility kit
fix(jira): stop dumping HTML 404 pages from Structure API errors
test(redact): serialise env-touching tests through a module mutex to kill CI flake
chore(fmt): apply rustfmt to trace.rs (fixes CI Format on #186 )
fix(skills): address Copilot review on #186 — session-id layout, trace error variant, ghost --budget flag
fix(skills): tighten trace/redact per Copilot follow-up on #173
fix(skills): address Copilot review on #173 — real session-dir bug + redactor tightening
fix(docs): drop non-existent devboy skills upgrade --all flag (#176 )
docs(skills): add Skills guide section + README catalogue (closes epic #156 )
feat(skills): category 3 — self feedback loop (4 skills, #174 )
feat(skills): session traces for the self-feedback loop (ADR-015)
fix(skills): address Copilot review on #172
feat(skills): category 4 — meeting notes (3 skills, #164 )
fix(skills): address Copilot review on #171
feat(skills): category 2 — code review (3 skills, #161 )
fix(skills): address Copilot review for issue-tracking skills (#170 )
feat(skills): category 1 — issue tracking (5 skills, #160 )
fix(skills): address Copilot review for messenger skills (#169 )
feat(skills): category 5 — messenger via Slack (3 skills, #165 )
fix(skills): address Copilot review on #168
feat(skills): category 0 — self-bootstrap skills (#159 )
chore(fmt): apply rustfmt to server.rs (fixes CI Format on #187 )
fix(mcp+cli): address Copilot review on #187 — key-prefix mismatch retry + tools-list comment
fix(cli+mcp): route tracing to stderr for pipe-able subcommands, stop swallowing real upstream errors
fix: address Copilot review on #195 — config path via load_runtime_config, thread- prefix
test(doctor): pin scoped-lookup fallback + scoped-error surfacing behaviours (#188 )
fix(doctor): fall back to global key when scoped lookup errors (#188 )
chore(fmt): apply rustfmt to the bundle so CI Format job is green
fix(config): make config list and config path respect local .devboy.toml (#188 )
fix(cli): correct skills upgrade --global / --local help text (#188 )
fix(cli): validate issues --state / mrs --state against fixed value list (#188 )
fix(github): strip review-/comment- prefix from Discussion.id before in_reply_to parse (#188 )
fix(init): seed .devboy.toml with a comment template when no providers detected (#188 )
fix(cli): exit non-zero when tools call returns isError=true (#188 )
fix(executor): reject bad tools/call params instead of silently defaulting (#188 )
feat(skills): devboy-qa-sweep — parallel QA sub-agents for CLI regressions
fix(review): address 2nd Copilot review round on #183
test(core): cover Provider* trait default-method fallbacks
test(fireflies): httpmock integration coverage for the GraphQL client
fix(review): address Copilot review comments on #183
feat(coverage): raise workspace coverage from 84.8% to 89.9%
fix(ci): resolve clippy + fmt on feat/transparent-proxy after main merge
fix(jira): address Copilot review for Structure plugin (#181 )
fix: replace Box::new(T::default()) with Box::::default() for clippy box_default
test(jira): add executor dispatch and output tests for Structure tools
test(jira): add Structure plugin unit and integration tests
feat(jira): add Structure plugin MCP tools
test(executor): harden coverage of create_merge_request_comment alias (#166 )
fix: accept discussionId for threaded GitLab MR replies
Initial plan
fix(ci): rustfmt + clippy on llm-eval / format-pipeline binaries (#184 )
feat: transparent MCP proxy — routing, matching, cache, telemetry (#182 )
feat(skills): research-pipeline SKILL.md for dataset reproduction
feat(research): anonymized ETL + classifier pipeline for Paper 1
docs(research): Paper 1 — Bash LLM classification + key claims
docs(research): Paper 1 — real-world gold-selection validation (anonymized)
feat(research): TrimTree Paper 1 — strategies, eval harness, LLM validation
fix(skills): address Copilot review on #167
fix(skills): honour DEVBOY_HOME_OVERRIDE so Windows tests can redirect home
feat(skills): devboy-skills crate + devboy skills CLI (#157 , #158 )
docs(adr): add skills-subsystem design (ADR-012 .. 016)
docs(adr): third Copilot pass — remaining inconsistencies
docs(adr): second Copilot review pass — remove remaining stale references
docs(adr): address Copilot review — remaining accuracy fixes
docs(adr): sync ADRs with the shipped code
docs(adr): correct changelog author attribution
docs(adr): bootstrap Architecture Decision Records directory
fix: address review comments — deterministic MCP tests, null stdin, display paths
docs(executor): drop parent alias mention from create_issue schema (#153 )
fix(executor): accept parentId alias in create_issue params (#153 )
fix: address Copilot review — doc comment and test assertion (#151 )
fix(init): skip git auto-detect when --remote-config-url is set (#151 )
docs: address Copilot review — cross-platform JSON quoting for tools call (#149 )
fix(format-pipeline): use checked_div for zero-check in head_tail trim
docs: reposition as configurable tool bundle, remove inflated token claim (#149 )
fix(mcp): add missing type:object to tool inputSchema (#145 )
fix(mcp): update MCP protocol version to 2025-11-25 (#145 )
fix(mcp): address review — DeferredInit with builtin_tools, add tests (#145 )
fix(mcp): update doc comment for resolve_deferred_proxy (#145 )
style: fix clippy warnings and cargo fmt (#145 )
fix(mcp): defer proxy connection to background, respond to initialize immediately (#145 , #146 )
test(copilot): make Windows home-dir fallback assertion lenient
fix(tests): remove race-prone set_current_dir from unit tests
test: use agent-specific help text assertions in init flag tests
style: fix formatting
feat(cli): add MCP init support for Codex, Copilot, Gemini, OpenCode and ForgeCode (#143 )
feat(cli): add --kimi flag to devboy init for Kimi CLI MCP registration (#143 )
fix(core): address review round 7 — bounded char scan, trim config URL (#141 )
feat(cli): re-initialize Sentry from remote config DSN (#141 )
fix(core): address review round 6 — build.rs watchers, URL redact, docs (#141 )
fix: prevent UTF-8 string panics in truncation, logging, and API clients (#141 )
chore: add .playwright-cli to gitignore (#141 )
fix(core): address review round 5 — non-ASCII safety, docs, limits (#141 )
chore: bump version to 0.17.0 (#141 )
docs: add Zread badge to README (#141 )
feat(cli): embed build info in binary and Sentry release (#141 )
feat(core): add remote config fetching for centralized configuration (#141 )
fix(core): scrub event messages/exceptions and fix uppercase param bug (#141 )
fix(cli): flush Sentry events before process exit (#141 )
fix(core): add reqwest transport feature to sentry dependency (#141 )
chore: bump version to 0.16.0
fix(core): address Codex P1/P2 findings and new Copilot comments (#141 )
fix(mcp): hide upload_asset/delete_asset when no provider supports them (#123 )
style: run cargo fmt (#123 )
refactor(mcp): delegate tool execution to Executor, remove ToolHandler (#123 )
feat(executor): add messenger dispatch + AssetManager caching (#123 )
fix(core): apply EnvFilter globally and redact DSN from logs (#141 )
fix(core): address review comments for Sentry integration (#141 )
style: cargo fmt (#136 )
style: fix rustfmt formatting in sentry_integration (#141 )
feat(core): add optional Sentry integration for error reporting (#141 )
fix(mcp): address Copilot review — schemas, filters, provider loop (#136 )
fix(review): address Codex review findings (#123 )
fix(mcp): address Codex review — progress, labels, provider lookup (#136 )
refactor(mcp): wrap AssetManager calls in spawn_blocking (#123 )
fix(review): address remaining Copilot review comments (#123 )
fix(jira): add fields param to search and handle labels fallback in create (#136 )
fix(mcp): add 5 missing tools to MCP handler (#136 )
fix(mcp): add ClickUp set_custom_fields call in MCP create/update handlers (#132 )
fix(mcp): wire projectId/issueType through MCP create_issue handler (#131 )
fix(mcp): wire projectKey/nativeQuery through MCP handler (#130 )
fix(jira): address Copilot review round 2 (#130 )
fix(jira): handle native_query starting with ORDER BY (#130 )
fix(jira): address Copilot review — has_project_clause, ORDER BY, escape (#130 )
test(jira): cover project ~ operator in has_project_clause (#130 )
fix(jira): harden has_project_clause, escape project key, handle empty native_query (#130 )
style(jira): fix formatting (#130 )
fix(jira): download attachments on Self-Hosted via content URL (#123 )
fix(github): support user-attachments/files/ URL pattern for non-image attachments (#123 )
fix(github): parse HTML tags + user-attachments URL pattern (#123 )
fix(cli): clarify slack test setup error message
fix(slack): redact bot token from SlackClient debug output
fix(slack): address async cache locking and search cursor bugs
fix(slack): use async RwLock for user cache
fix(slack): align scopes, context registration, and auth handling
fix(slack): validate messenger params and harden search/message handling
fix(github): don't send auth headers to CDN hosts (#123 )
feat(mcp): add update_merge_request tool (#123 )
fix(gitlab): route /uploads/ downloads through project API + fix provider fallthrough (#123 )
fix(jira): address Copilot review round 2 (#132 )
fix(tools): clarify projectId is a project key, not numeric ID (#131 )
fix(mcp): wire download_asset to AssetManager local cache (#123 )
fix(assets): pre-validate base64 size + download size limit (#123 )
fix(mcp): robust provider iteration, upload validation, GitHub host fix (#123 )
feat(providers): add attachments_count to Issue responses (#123 )
feat(mcp): add asset management MCP tools — get/upload/download/delete (#123 )
fix(providers): filter attachment URLs by provider + bound cache filename (#122 )
fix(providers): scheme validation in host trust checks, remove redundant to_vec (#122 )
fix(providers): angle-bracket markdown URLs + Jira multipart Content-Type (#122 )
fix(providers): security — host validation for downloads, error on empty uploads (#122 )
feat(providers): asset CRUD across ClickUp, Jira, GitLab, GitHub (#122 )
fix(jira): validate customfield_ prefix, use expect instead of unwrap_or_default (#132 )
fix(mcp): pass customFields through MCP handlers to provider (#132 )
style(jira): fix clippy collapsible-if and formatting (#132 )
fix(jira): merge custom fields into create/update issue payload (#132 )
feat(core): add custom_fields to CreateIssueInput and UpdateIssueInput (#132 )
fix(tools): clarify projectId description — optional override, not required (#131 )
style(jira): fix formatting (#131 )
fix(jira): use input.project_id and input.issue_type in create_issue (#131 )
feat(core): add project_id and issue_type to CreateIssueInput (#131 )
fix(jira): support projectKey override and nativeQuery in get_issues (#130 )
feat(core): add project_key and native_query to IssueFilter (#130 )
fix(assets): detect self-eviction in store, dedup doc, drop redundant dev-dep (#121 )
docs(assets): explain why let _ = write!() is safe in sha256_hex (#121 )
fix(assets): correct same-path rollback detection in store() (#121 )
fix(assets): consolidate parent dir logic in CacheManager::store, document hash trade-off (#121 )
docs(assets): document same-path rollback trade-off in store() (#121 )
fix: clarify Jira Cloud uses plain text/ADF, not markdown (#128 )
fix: add Jira wiki markup hint to tool descriptions for self-hosted Jira (#128 )
fix(assets): Codex P1/P2 — collision-free paths, deterministic eviction, with_root bypass, safe rollback (#121 )
feat(assets): dual-mode asset_id — caller-provided or content-addressed (#121 )
docs(assets): fix slug() and concurrency doc accuracy (#121 )
fix(assets): defer old-blob delete + symlink-safe purge (#121 )
test(assets): fix Windows CI failure in resolve_honors_user_values (#121 )
fix(assets): Codex + Copilot review — 5 fixes (#121 )
fix(assets): transactional store, rename lru_evicted, stable sort docs (#121 )
fix(assets): fifth review round — mutex docs, poisoned-lock recovery, symlink guard (#121 )
fix(assets): address fourth round of Copilot review comments (#121 )
fix(assets): accurate bytes_freed + startup rotation (#121 )
fix(assets): address second round of Copilot review comments on PR #126 (#121 )
fix(assets): address Copilot review comments on PR #126 (#121 )
test(assets): use path components to avoid Windows separator mismatch (#121 )
feat(assets): add devboy-assets crate with cache, index, and LRU rotation (#121 )
refactor(tests): improve assertion formatting for better readability
refactor(slack): remove unused fields from SlackConversation struct
feat(slack): implement search cursor for message pagination and enhance cursor serialization
fix(mcp): validate messenger chat params and honor Slack reply_to_id
fix(clickup): make re-fetch best-effort to avoid false errors (#117 )
fix(clickup): always re-fetch task after PUT to return fresh state (#117 )
fix(mcp): scope Slack providers to active context.
feat(slack): add request throttling
chore: bump version to 0.15.1
fix(ci): remove stapler staple — not supported for standalone binaries
fix(ci): replace readarray with POSIX-compatible keychain list append
fix(ci): address review — base64 flag, keychain list, identity discovery, stapling
feat(ci): add Apple code signing and notarization for macOS binaries
feat(slack): implement user caching in SlackClient for improved performance
feat(slack): add next_cursor to pagination structure
feat(slack): implement messenger chat, history, search, and send tools
feat(slack): add provider foundation and health checks
feat(core): add messenger category and shared provider types
fix(executor): revert goal_id filter to is_ascii_digit (g0-g9)
fix(clickup): address Copilot review — url encoding, schemas, attachment limits
fix(executor): accept priority as string or number after enricher transform
Revert "fix(clickup): remove priority transform from enricher — client handles conversion"
fix(clickup): remove priority transform from enricher — client handles conversion
fix(clickup): update_epic tag transition, custom fields, epicKey param, clippy fixes
fix(clickup): restore regressions from migration — search, stateCategory, epics, sorting, attachments (#113 )
chore: bump to 0.14.0
fix(doctor): address PR #96 review — Jira serde rename, dedup deps, refactor provider checks (#58 )
fix(cli): gate update_command_parts with cfg(not(windows)) (#97 )
fix(cli): move update_command_parts into cfg(not(windows)) block (#97 )
fix: add documentation build step to CI workflow &: update links to use relative paths in format-pipeline documentation
feat(format): add chunk metrics to FormatMetadata
fix(format): exclude hints/chunk index from output_chars metric
fix: address review comments from artslob and Copilot (#95 )
feat(pipeline): chunk navigation parameter + safe enricher naming (#95 )
style: cargo fmt (#108 )
fix: address copilot review comments (#108 )
feat(clickup): add subtask hierarchy management and link/unlink MCP tools (#107 )
refactor(enricher): FormatPipelineEnricher adds format/budget/offset/limit to list tools (#95 )
feat(mcp): add LLM-controlled budget parameter to tool schemas (#95 )
test: add coverage for budget process_*, ProviderResult, JSON fallback, chunk index (#95 )
docs: update format pipeline documentation for chunk-based lazy loading (#95 )
feat(pipeline): chunk-based lazy loading for LLM agents (#95 )
fix(page_index): remove misleading 'current page' concept (#95 )
feat(providers,executor): populate pagination metadata and thread through stack (#95 )
fix: address PR review comments from Copilot (#95 )
style: fix clippy warnings and formatting (#95 )
style: cargo fmt (#106 )
fix: address copilot review comments (#106 )
style: cargo fmt
fix: use Box::default() to satisfy clippy box_default lint
style: fix test formatting (cargo fmt)
test: add unit tests for get_issue_relations (coverage)
style: fix formatting (cargo fmt)
feat: implement get_issue_relations tool (#DEV-732)
fix(clickup): address review — normalize parent key, fast-path CU- resolution, fix docs (#101 )
fix(bench): add missing parent and subtasks fields to Issue in benchmark (#101 )
fix(clickup): fix markdown rendering, epic linking and subtask creation (#101 )
fix(cli): spawn detached upgrade process on Windows instead of manual hint (#97 )
fix(cli): address review — structured command parts, Windows lock handling (#97 )
style(cli): apply cargo fmt (#97 )
feat(pipeline): structured page index for large results (#95 )
feat(core): change provider traits to return ProviderResult (#95 )
feat(cli): auto-run package manager update in devboy upgrade (#97 )
feat(pipeline): replace max_items with budget pipeline integration (#95 )
feat(core): add ProviderResult, SortInfo types; extend MrFilter with offset/sort (#95 )
fix(cli): correct path for devboy-format-pipeline in Cargo.toml
fix(doctor): clippy warning
docs(doctor): add comprehensive doctor command guide with CLI examples
chore: bump version to 0.13.0
fix: address all PR review comments (#78 )
feat: add CLI pipe mode devboy format-pipeline (#78 )
fix: address all review comments — error propagation, tests, docs, context-scoped providers (#83 )
feat: add Fireflies config, CLI integration, and fix API response parsing (#83 )
fix: adapt meeting handlers to FormatResult API (#83 )
fix: address review comments on Fireflies PR (#83 )
feat: add meeting tools to MCP server handlers (#83 )
test+docs: add tests and documentation for Fireflies provider (#83 )
feat: add Fireflies.ai meeting notes provider (#83 )
feat: format pipeline metadata — compression stats + token estimates (#93 )
docs: add issue template for new provider feature requests (#81 )
chore: bump version to 0.12.0
chore: translate remaining Russian comments to English
fix: resolve clippy warnings for --all-targets --all-features
fix: replace Python-style format string in bench with Rust format
feat: TOON format pipeline with tree-based budget trimming (#75 , #76 )
chore: bump version to 0.11.0
test: add 76 unit tests for executor, pipeline, context, factory, tools
fix: clippy warnings, fmt, fix test compilation
feat: universal proxy headers, JiraFlavor enum, pipeline truncation fixes
feat(executor): category-based tool filtering + list_tools() + base definitions (#66 )
feat: unsupported_tools filtering + proxy support (#66 )
refactor(core): typed ToolSchema with PropertySchema struct (#66 )
fix: address PR #70 review comments — 5 bugfixes (#66 )
fix(executor): add serde aliases for link_issues params (camelCase compat) (#66 )
feat(executor): add 6 new tools — statuses, epics, users, link_issues (#66 )
fix(executor): revert create_issue_comment alias — NestJS tool renamed to match (#66 )
fix(proxy): disable HTTP connection pool to fix keep-alive hang (#66 )
fix(proxy): handle SSE stream responses in Streamable HTTP transport (#66 )
fix: remove duplicate #[async_trait] annotations from test providers (#66 )
test: boost coverage — pipeline handlers, executor dispatch, enricher edge cases (#66 )
test: add comprehensive pipeline tests for GitHub/GitLab + format (#66 , #67 )
feat(gitlab): implement PipelineProvider for GitLab Pipelines API (#66 , #67 )
feat(pipeline): add PipelineProvider trait + GitHub Actions implementation (#66 , #67 )
fix(ci): remove unused imports in executor tests (clippy -D warnings) (#66 )
test+docs: add executor tests (49 total) and architecture documentation (#66 )
docs: update README and CONTRIBUTING with executor + enricher architecture (#66 )
feat(executor): add create_enricher factory with metadata deserialization (#66 )
feat(providers): add schema enrichers for all 4 providers (#66 )
refactor(core): move ToolEnricher trait to devboy-core, add ProviderMetadata (#66 )
feat(executor): extract devboy-executor crate from devboy-mcp (#66 )
chore(cli): fix clippy items-after-test-module warning
refactor(doctor): improve formatting and readability in diagnostic checks tests
feat(doctor): enhance diagnostic report to include version information
test(doctor): cover diagnostic checks, provider flows, and report rendering
feat(doctor): implement diagnostic command with output options and checks listing
feat(doctor): add MCP tools and proxy server diagnostic checks
feat(cli): add doctor checks for provider credentials
chore: bump version to 0.10.0
fix(ci): revert GITHUB_TOKEN from CI env to avoid breaking github_test (#61 )
fix(cli): use GITHUB_TOKEN for authenticated API requests to avoid rate limits (#61 )
fix(cli): make integration tests tolerant to GitHub API rate limits (#61 )
fix(cli): proper Windows support for devboy upgrade (#61 )
fix(cli): address review comments — non-blocking update check, clippy fix, better tests (#61 )
test(cli): add unit tests for cache, archive extraction, and upgrade logic (#61 )
feat(cli): add version update notification and devboy upgrade command (#61 )
chore: bump version to 0.9.0
chore(codecov): make patch coverage informational
test(mcp): move tool filtering tests to unit tests for coverage
fix(codecov): remove tests ignore pattern
refactor(mcp): move provider-specific tests to integration tests (#59 )
chore: ignore test files in codecov coverage (#59 )
test(mcp): add integration tests for tool filtering (#59 )
fix(mcp): address code review feedback for tool filtering (#59 )
feat(mcp): dynamic tool filtering based on configured providers (#59 )
chore: bump version to 0.8.0
fix(cli): skip CONTEXTS_ URLs in proxy detection (#54 )
fix(tests): use ci_chain instead of default_chain in integration tests (#54 )
style: format integration tests (#54 )
test(cli): add integration tests for env-only context configuration (#54 )
feat(cli): add full context configuration via environment variables (#54 )
feat(cli): add --no-config flag and DEVBOY_NO_CONFIG env var (#54 )
feat(doctor): add diagnostic checks for configuration and environment
test(handlers): add test for ManyDiscussionsProvider merge request methods
fix(handlers): enforce pagination limits for merge request discussions
test(handlers): add tests for pagination in merge request discussions
fix(tests): use unique env var names to avoid parallel test interference (#54 )
fix(storage): address Copilot review comments (#54 )
docs: add comprehensive environment variables documentation (#54 )
feat(storage): add environment variable support for credentials (#54 )
test(cli): fix integration tests for Windows CI (#39 )
fix(cli): use load_runtime_config() for issues, mrs, test commands (#39 )
fix(release): exclude merge commits from changelog generation
fix(handlers): add pagination support for merge request discussions
fix(cli): handle Windows CI where Claude CLI ignores USERPROFILE (#51 )
fix(cli): address Copilot review comments
fix(cli): handle Windows HOME directory in integration tests
fix(cli): respect --proxy-name when registering MCP server in Claude (#51 )
chore: bump version to 0.7.0
feat(cli): add --proxy-only flag to skip git remote detection
chore: bump version to 0.6.0
fix(cli): address Copilot review comments (#49 )
fix(cli): add DEVBOY_SKIP_KEYCHAIN env var for CI testing (#49 )
fix(cli): allow too_many_arguments for handle_init_command (#49 )
style: apply cargo fmt (#49 )
fix(cli): remove duplicate token key derivation logic (#49 )
feat(cli): add --proxy-token and --auth-type flags (#49 )
feat(cli): add proxy configuration commands (#49 )
chore: bump version to 0.5.0
fix(cli): address code review feedback for init command (#47 )
feat(cli): implement devboy init command for project initialization (#47 )
chore: bump version to 0.4.0
feat: add configuration to disable built-in tools (#45 )
chore: bump version to 0.3.0
fix(mcp): suppress clippy err_expect warning in proxy tests (#43 )
refactor(mcp): address PR review feedback (#43 )
test(mcp): increase proxy test coverage for SSE transport and error paths (#43 )
fix(mcp): resolve clippy warnings, fix formatting, update docs (#43 )
docs: add MCP proxy documentation (#43 )
feat(mcp): add MCP proxy for upstream MCP servers (#43 )
fix(docs): regenerate pnpm-lock.yaml after removing eslint/prettier (#40 )
refactor(docs): remove eslint/prettier, keep only biome (#40 )
fix(docs): use import.meta.url instead of __dirname for ESM compat (#40 )
chore(docs): upgrade rspress to v2, add biome/eslint/prettier (#40 )
chore: bump version to 0.2.0
docs: add configuration and contexts documentation (gh#35)
fix: honor explicit default context over legacy in MCP loading
docs: add PackageManagerTabs for installation and recommend global install (#37 )
docs: add create_merge_request to tools table and related projects section (#37 )
test: add context-switching coverage for config and MCP tools
feat: add context switching support for multi-project management
fix: address PR review feedback and cargo fmt
feat: add create_merge_request MCP tool for GitLab and GitHub (#30 )
fix: changelog generation for first release
fix: install libdbus-1-dev for Linux builds in release workflow
fix: correct inline comment in release workflow
feat: add @devboy-tools/cli npm package with platform-specific binaries (#4 )
fix: address Copilot review — JQL escaping, pagination test, overflow guard
feat: add Jira provider with Cloud and Self-Hosted support (#28 )
fix: address Copilot review — URL encoding, unused param, limit guard
style: fix cargo fmt formatting
fix: ClickUp provider — status resolution, comment response, provider filter, custom_id retry
fix: address PR review — timestamps, custom IDs, pagination
docs: add ClickUp integration documentation
feat: add ClickUp provider — basic task operations (#27 )
feat: enable Codecov PR comments with coverage diff
fix: address Copilot review — tighten test assertions and isolate tests
fix: remove needless borrows in truncation tests
feat: increase test coverage to 91% and enforce threshold (#25 )
docs: add GitLab integration docs and unify ConfigExtractor (#23 )
fix(ci): update codecov-action to v5 for proper token handling (#21 )
fix(ci): specify pnpm version in deploy workflow
ci: add GitHub Pages deployment workflow for docs (#17 )
style: apply cargo fmt formatting
feat(mcp): add provider routing to create_issue + gitlab types refactor
docs: add DevBoy Tools documentation with Rspress
fix(github): auto-fetch commit_sha for inline PR comments
feat(mcp): implement complete MCP tool set
ci: install libdbus-1-dev for Linux builds
fix: resolve clippy warnings
style: fix code formatting
docs: update README with local development guide
fix: enable native OS keychain for credential storage
feat: add MCP command to CLI for testing
feat: implement MCP server with JSON-RPC protocol
test: add E2E tests for pipeline with GitHub fixtures
feat: add pipeline plugins for output optimization
feat: implement GitHub API mapping and Record/Replay testing (#8 )
feat: implement devboy-core and devboy-storage crates (#5 , #6 )
fix(ci): address PR review comments
docs: add README.md and CONTRIBUTING.md (#3 )
ci: setup GitHub Actions CI/CD pipeline (#2 )
style: fix code formatting
feat: setup Cargo workspace structure (#1 )
Initial commit
You can’t perform that action at this time.