Skip to content

v0.26.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 06:20
· 429 commits to main since this release

What's Changed

  • feat(agents): support Qoder CN via its .qoder-cn user directory by @PerryLink in #695
  • feat: scope hooks, MCP servers and env variables by logical project by @SaulMoro in #700
  • fix(hooks): stop the Stop hook nudge reaching the user twice by @SaulMoro in #720
  • fix(hooks): list each tool's own built-in hook set by @ousamabenyounes in #718
  • fix(init): refuse provider logins without a terminal instead of hanging (#711) by @SaulMoro in #713
  • docs(teamai-skill): fix wrong share-learnings hand-off hint by @jeff-r2026 in #736
  • fix(ci): make Codex review converge and run fork-safe e2e by @jeff-r2026 in #739
  • fix(env): only stick to a candidate the active profile actually reaches (#682) by @STiFLeR7 in #715
  • fix(push): namespace new rules and agents from --role/--project (#649) by @SaulMoro in #698
  • feat(hooks): bridge TeamAI hooks into DeepSeek Harness by @dvd233 in #689
  • fix(members): read the default-branch roster as an inherited root after the reports switch by @jimpablo in #741
  • fix(doctor): probe the Copilot hooks file where inject writes it by @SaulMoro in #733
  • fix(hooks): widen track-slash regex to match SKILL_NAME_REGEX by @Dev-next-gen in #737
  • feat(skill): serve builtin skill content from the CLI, deploy a discovery stub by @SaulMoro in #699
  • feat(pi): add Pi Coding Agent integration by @kongdayan in #692
  • fix(env): hold env keys to the identifier rule env.sh already assumes by @ydflow in #740
  • docs(readme): add SkillHub fallback prompt for GitHub-blocked users by @jeff-r2026 in #745
  • fix(ai-client): mute share hint in AI child sessions by @hiro-nikaitou in #746
  • fix(manifest): reject namespace strings that are not safe path segments by @SaulMoro in #710
  • fix: keep TeamAI out of projects that never set it up (#748) by @SaulMoro in #753
  • docs(readme): move the agent capability matrix under Quick Start by @jeff-r2026 in #763
  • fix(skills): one share gate, actionable refusals, and a louder stub deploy by @SaulMoro in #747
  • fix(pull): gate the generic sync report on a tool that can receive it by @ydflow in #751
  • fix(agents): render codex TOML with multi-line literal strings by @ydflow in #754
  • docs(test): name the live e2e suites in the integration stub by @hiro-nikaitou in #770
  • docs(readme): mark Copilot CLI usage/sessions/dashboard as supported (#766) by @ousamabenyounes in #767
  • fix(lock): never rename over a lock that was just released or is still being written (#760) by @SaulMoro in #761
  • fix(hooks): run every handler in the scope the dispatcher resolved (#752) by @SaulMoro in #769
  • fix(init): preserve additional roles selected at the prompt by @dvd233 in #765
  • fix(dashboard): gate the legacy dashboard-report command on a config by @ydflow in #772
  • fix(pull): pass force option through MCP reconcile by @jung0han in #762
  • feat(config): honor a relocated Claude Code config dir (CLAUDE_CONFIG_DIR) via toolRoots by @Rererr in #728
  • feat(models): manage team and local model profiles by @laolaoPlayer in #675
  • fix(tgit): fetch gf CLI over HTTPS with checksum verification by @jeff-r2026 in #773
  • fix(config): release only Claude's MCP servers on a root move; read the recorded root in import and skill tracking by @Rererr in #775
  • fix(usage): discard pre-upgrade usage and stop falling back past an unreadable config (#748) by @SaulMoro in #758
  • docs(skill): harden credential and consent guidance in teamai skill by @jeff-r2026 in #779
  • feat(models): merge show into list with an optional profile by @laolaoPlayer in #782
  • fix(push): honor explicit branches and protect dirty team clones by @dvd233 in #690
  • fix(votes): collect upvote adoption from tool-use evidence + opt-in LLM-judge (#723) by @m0Nst3r873 in #744
  • fix(stats): count each session once and keep other projects out by @ydflow in #771
  • fix(webhook): report failed deliveries in webhook test and log the last attempt by @huiq777 in #777
  • feat(projects): add admin commands to manage the projects manifest (#756) by @huiq777 in #774
  • chore(review): scope e2e to behavior changes, drop providerΓ—agent matrix, add P3 by @jeff-r2026 in #781
  • fix(report): each scope keeps its own reported dashboard snapshots (#786) by @SaulMoro in #795
  • fix(migrate): keep the legacy .teamai/ while the partition config cannot be read (#797) by @SaulMoro in #799
  • fix(stats): await the async dashboard scope filter (#795) by @SaulMoro in #806
  • fix(votes): keep votes with the scope they were cast in (#787) by @SaulMoro in #793
  • fix(pull): sync nothing in a project whose config cannot be read (#784) by @SaulMoro in #792
  • fix(recall): search nothing in a project whose config cannot be read (#796) by @SaulMoro in #798
  • fix(pull): deliver team resources to a worktree added after the last pull (#807) by @SaulMoro in #811
  • fix(hooks): give the detached hook child the bundled gits on PATH by @flowjzh in #801
  • fix(usage): cap usage.jsonl in scopes that never report (#788) by @SaulMoro in #790
  • fix(docs): remove stale local documents during pull by @Yong-yuan-X in #817
  • fix(stats): count every worktree of a repo as that repo (#809) by @SaulMoro in #813
  • fix(report): each scope reports its own dashboard sessions once, against its own snapshots (#785, #786) by @SaulMoro in #791
  • fix(import): publish the learning import --from-mr extracts (#823) by @SaulMoro in #825
  • fix(hooks): keep a removed worktree's hook events in its project (#810) by @SaulMoro in #824
  • fix(push): preserve empty file additions by @Yi-111-a in #821
  • fix(push): keep config changes on explicit branch by @dvd233 in #820
  • fix(push): keep a teammate's update when pushing from a stale worktree (#812) by @SaulMoro in #819
  • feat(agents): support WorkBuddy subagent distribution by @Tremy-wu in #826
  • feat: one namespace model for every resource type (#707) by @SaulMoro in #816
  • fix(push): stop offering a teammate's update back as a local edit (#823) by @SaulMoro in #827
  • fix(config): keep config.yaml readable while it is being saved (#823) by @SaulMoro in #831
  • fix(data-layout): let every self-mode worktree publish learnings and keep its queue (#808) by @SaulMoro in #814
  • fix(pull): report hooks and MCP entry warnings on a dry run by @ydflow in #832
  • fix(pull): do not deliver an env, hook or MCP entry with a mistyped key (#822) by @SaulMoro in #833
  • fix(learnings): find learnings despite a broken manifest and in the dashboard; show the MR import prompt (#823) by @SaulMoro in #834
  • fix(push): stop reverting a teammate's update from HOME or a stale .teamai copy (#823) by @SaulMoro in #835
  • fix(tags,roles): honor --dry-run and count namespaced skills in tags list (#836) by @SaulMoro in #837
  • fix(cache,import): print cache and import review output in English (#836) by @SaulMoro in #840
  • ci(lint): add oxlint and fail CI on any warning (#828) by @SaulMoro in #839
  • feat(code-knowledge): add Swift support to the AST and heuristic tracks by @Smilewithoutfalling in #842
  • test(dry-run): stop git background maintenance from racing the tree snapshot by @SaulMoro in #845
  • feat(init): let a member choose the git provider with --provider (#789) by @SaulMoro in #844
  • fix(lint): use String#endsWith in the Swift extractor by @jeff-r2026 in #846
  • fix(dashboard): serialize events.jsonl append and compaction (#804) by @ydflow in #841
  • fix(agents): carry the agent's model into the Cursor render (#830) by @ydflow in #856
  • fix(persistence): write state.json and the search index atomically (#854) by @ydflow in #855
  • fix(dry-run): thread { dryRun } through the loaders contribute, session save and recall use (#850) by @ydflow in #853
  • fix(review): print review reject/apply output in English (#836) by @Dev-next-gen in #859
  • fix: prevent stale Copilot rules from reverting team updates by @Yong-yuan-X in #857
  • fix(learnings): publish what an older import --from-mr left in the checkout (#823) by @SaulMoro in #838
  • fix(iwiki): stop fetchAllPages from rejecting every space walk before it starts by @ydflow in #849
  • fix(stats): split Windows cwds on the backslash in attributeRepo by @ydflow in #858
  • fix(code-knowledge): keep tree-sitter grammars off V8's optimizing Wasm tier on Node 24 (#860) by @SaulMoro in #861
  • fix(git): spawn git by its resolved path so macOS skips a PATH search per call by @SaulMoro in #869
  • fix(remove): remove a root MCP server named 'ambiguous' instead of refusing it silently (#862) by @SaulMoro in #864
  • fix(dry-run): thread { dryRun } through the loaders pull, push, status and list use by @Smilewithoutfalling in #866
  • fix(rules): reclaim delivered team rules when none is selected (#802) by @huiq777 in #815
  • fix(push): publish the env files env add leaves in a standalone clone (#881) by @SaulMoro in #885
  • fix(recall): read each agent's session variable so recall quality joins its session by @SaulMoro in #887
  • fix(recall): normalize scores across knowledge sources by @ydflow in #891
  • fix(tests): prevent model tests from overwriting Claude config (P1) by @SaulMoro in #890
  • fix(hooks): close stdin when EOF timeout expires by @ydflow in #889
  • fix(dashboard): keep SSE live after event log compaction by @ydflow in #888
  • fix: keep self-update off npm link checkouts, and report hook injection only on change (#871) by @SaulMoro in #874
  • ci(lint): enable type-aware linting with no-floating-promises and no-misused-promises (#836) by @SaulMoro in #863
  • fix(env): keep the user scope's env block when a project pulls by @SaulMoro in #878
  • fix(test): keep CI validate from timing out on the usage lock and an unborn HEAD by @jeff-r2026 in #897

New Contributors

Full Changelog: v0.25.0...v0.26.0