Repository navigation
What's Changed
- feat(tool-launch): one launcher for every AI call, from the tool descriptor (#1389) by @hz89Dev in #1444
- fix(init): refuse --scope user in single-repo mode by @bfs2021 in #1455
- fix(import): same-basename --dir checkouts no longer share one evidence slug (#1422) by @kittimzhe in #1448
- fix(status): surface unconfirmed automatic reports by @ydflow in #1462
- feat(score): lease a session, or a skill run, to the driver's own judge (#1386) by @hz89Dev in #1470
- fix(update,pull): let one scope decide auto-update and auto-compact, the user scope when there is one by @hz89Dev in #1475
- feat(dashboard): show scorer pass rates, what drives them, and whether a team change helped (#1182) by @hz89Dev in #1466
- fix(init): keep the member's own settings on init --force by @hz89Dev in #1476
- feat(reporting): record what sessions and workflow steps delivered, and count it per run mode by @hz89Dev in #1471
- feat(workflow): sessions in hosts teamai cannot detect name their tool with --tools (#1479) by @hz89Dev in #1480
- feat(session): publish and score sessions per run mode, and drain them before an unattended job ends by @hz89Dev in #1478
- feat(config): overlay member settings across workspace scopes by @huong8373tt-beep in #1473
- fix(recall): honour TEAMAI_RECALL_DISABLED in pull and recall status by @ColumbusLabs in #1464
- test: wait for teamai's detached children before a teardown gives up on ENOTEMPTY (#1413) by @hz89Dev in #1467
- fix(config): treat sessions as a member setting so a workspace sees the machine value by @hz89Dev in #1483
- feat(reporting): count what unattended sessions delivered at the drain that ends their job by @hz89Dev in #1485
- fix(init): stop user-scope init from trusting Codex hooks when the machine file turns trust off by @hz89Dev in #1487
- fix(locate): every command finds a tool where pull wrote it, also when its home moved (#1221) by @hz89Dev in #1486
- fix(gitlab): include reviewer lookups in MR creation deadline by @ydflow in #1488
- fix(workflow): a session with no tool is asked for it, and a resume's --tools replaces the run's by @hz89Dev in #1481
- fix(session): keep a tool call's arguments masked when masking leaves no JSON to parse by @hz89Dev in #1482
- feat(config): show member setting provenance by @huong8373tt-beep in #1474
- feat(score): label sessions by hand and see how often the judge agrees with members by @hz89Dev in #1489
- test(doctor): use native temp paths in Copilot fixtures by @huong8373tt-beep in #1491
- feat(config): AI calls, stop pricing, workflow policy and doctor follow every member setting level (#1459) by @hz89Dev in #1477
- feat(worktree): one side-branch checkout per self-mode repo (#1443) by @Walternater in #1465
- fix(update): skip self-update for a Volta-managed install by @max950509 in #1493
- fix(hooks): make CodeBuddy IDE project gates work on Windows by @huong8373tt-beep in #1494
- feat(workflow): a CI runner takes the runs members hand it, with resume --next (#1390) by @hz89Dev in #1490
- fix(session): mask env secrets with quotes or backslashes in scrubbed tool arguments by @jayhemnani9910 in #1506
- ci(lint): enable oxlint suspicious and perf categories by @STiFLeR7 in #1414
- fix(workflow): resume --next leaves the runs it cannot finish here, and says what they need by @hz89Dev in #1508
- feat(hooks): run project team hooks on OpenCode and OMP (#1492) by @Walternater in #1497
- fix(init): refuse to initialize single-repo team URL as standalone team repo (#1500) by @hobostay in #1509
- fix(pull): exit 1 when the team repo fetch fails in a pull a person ran by @pcbeingused333 in #1512
- fix(init): keep the settings that validate when --force replaces an invalid config by @pcbeingused333 in #1510
- fix(mcp): clarify parse failures in delivery reports by @huong8373tt-beep in #1507
- fix(import): apply --incremental to a subdirectory and stop warning about another checkout's legacy name by @kittimzhe in #1511
- fix(workflow): offer teamai env set only for keys the team declares by @bfs2021 in #1514
- feat(instructions): deliver culture blocks to Qoder, Kiro and Trae by @huong8373tt-beep in #1499
- test(workflow): give the eight flaky workflow cases a budget that fits their real work (#1504) by @Walternater in #1522
- fix(codex-hooks): preserve split UTF-8 output by @huong8373tt-beep in #1525
- feat(workflow): default workflows a team can override, starting with session-close (#1388) by @hz89Dev in #1520
- test(workflow): expose failed parallel workspace steps (#1526) by @huong8373tt-beep in #1529
- test(ci): forget a pid the runner cannot signal, and run the CodeBuddy gate on Windows (#1504) by @Walternater in #1521
- fix(init): preserve unrelated staged changes by @Yong-yuan-X in #1528
- test(workflow): keep skill harness runners parked while locks wait (#1523) by @huong8373tt-beep in #1527
- feat(workflow): say why a local run failed, and how to retry it by @hz89Dev in #1532
- fix(workflow): stop parallel workspace steps dying on a worktree entry git is still writing (#1526) by @hz89Dev in #1536
- feat(hooks): every tool with a hooks tick runs the team's hooks by @SaulMoro in #1515
- fix(workflow): give undeclared keys the env add advice in stepEnvironment too by @bfs2021 in #1531
- fix(hooks): make Claude duplicate guards work in PowerShell (#1498) by @huong8373tt-beep in #1540
- fix(recall): rank an explicit docs match above a saturated codebase hit by @Walternater in #1524
- fix(workflow): a stop of an attempt reaches the setup's process group by @Walternater in #1542
- fix(import): fail when the push to the team repo fails instead of reporting a publish by @pcbeingused333 in #1541
- fix(import, init): exit 1 when deep enrich does not finish or init --http would replace another local agent by @hz89Dev in #1534
- fix(pull): remove the old team's skills after a team switch, and keep a team's Codex skills in one directory by @hz89Dev in #1533
- fix(import): serialise the shared source-manifest publish by @bfs2021 in #1550
- fix(hooks): record what a CodeBuddy session does, and what it loads by @Walternater in #1547
- feat(scoring, dashboard): let ~/.teamai/config.yaml limit session judging on a machine, and show which level set each member setting (#1459) by @hz89Dev in #1535
- fix(codebase): publish the --reconcile graph in a team repo by @hz89Dev in #1551
- fix(pull): support Windows long paths in team repo refresh by @ydflow in #1518
- rank(recall): prefer the codebase page the query names, and keep the top 3 source-diverse by @Walternater in #1549
- feat(local-agent): enroll workspaces individually and give each agent its own access credential by @JasonRUAN in #1495
- feat(agy): support Antigravity in everything teamai delivers and reads by @hz89Dev in #1548
- fix: publish teamwiki after codebase --deep-enrich in team repo by @Hstealth in #1560
- fix(mcp): preserve invalid Codex TOML configs by @ydflow in #1554
- fix(push): preserve delivered skill origins across CRLF by @huong8373tt-beep in #1556
- fix(doctor): verify that tools read delivered agent directories by @hobostay in #1558
- ci(lint): enable boolean literal comparison rule by @huong8373tt-beep in #1567
- fix(deps): upgrade Git and TOML dependencies by @HengYangDS in #1450
- fix(mcp): find a Codex server whose header has a comment, spaces or a quoted name by @jayhemnani9910 in #1574
- feat(workflow): offer teamai-share-learnings only when share can run, and name workflows by their alias by @hz89Dev in #1568
- fix(pull): remove the recall agent and rule when recall resolves to off by @pcbeingused333 in #1530
- feat(session): read Qoder and Qoder CN sessions by @huong8373tt-beep in #1571
- feat(deep-enrich): align graph documents with wiki method by @huong8373tt-beep in #1569
- rank(search): ignore question words and normalize the title field by @Walternater in #1555
- Update Zod, Vitest and esbuild to patched versions by @HengYangDS in #1575
- feat(joycode): support lifecycle hooks and sessions by @Iapa in #1572
- fix(session): name archive repo directories with ~XX so GitHub and GitLab can open them by @hz89Dev in #1576
- fix(pull): give every machine the same copy of a same-name skill, and take deleted copies off the record by @hz89Dev in #1584
- fix(mcp): preserve Codex instructions when removing servers by @ydflow in #1587
- fix(codex): make Windows hook commands PowerShell-safe by @huong8373tt-beep in #1585
- docs: document OpenCode config home overrides by @huong8373tt-beep in #1592
- docs(setup): list internal Claude instruction files by @huong8373tt-beep in #1588
- fix(mcp): keep a member comment that follows a Codex block by @bfs2021 in #1598
- fix(local-agent): use English binding skip confirmation by @huong8373tt-beep in #1599
- docs(pi): document relocated agent directory support by @huong8373tt-beep in #1594
- fix(codex): accept BOM-prefixed configuration by @huong8373tt-beep in #1600
- docs: clarify OpenCode home precedence by @huong8373tt-beep in #1603
- docs(lint): mark merged type-aware rules as landed by @huong8373tt-beep in #1593
- ci(lint): move learnings path guard out of Vitest by @huong8373tt-beep in #1601
- ci(lint): guard direct HOME reads by @huong8373tt-beep in #1604
- fix(session): keep published session paths machine-independent by @huong8373tt-beep in #1591
- feat(scorers): show the session judge the team skills it had and used by @SaulMoro in #1606
- ci(lint): enable non-mutating array reversal checks by @huong8373tt-beep in #1614
- ci(lint): enable prefer-includes by @huong8373tt-beep in #1617
- fix(joycode): follow configured home by @huong8373tt-beep in #1622
- docs: refresh Pi instruction guidance by @huong8373tt-beep in #1623
- fix(mcp): preserve indented Codex TOML tables by @ydflow in #1626
- ci(lint): document prefer-array-some policy by @huong8373tt-beep in #1624
- fix(workflow): publish a session on the pick the person made at the start by @SaulMoro in #1580
- ci(lint): move static checks into lint, cut rule-harness time 75% by @hz89Dev in #1630
- docs: clarify moved tool home paths by @huong8373tt-beep in #1632
- fix(lint): guard dotted launch environment reads by @huong8373tt-beep in #1634
- fix(lint): guard provider merge member calls by @huong8373tt-beep in #1635
- fix(doctor): describe Pi and OMP default-home overlap by @huong8373tt-beep in #1638
- feat(recall): record query text in the session recall-quality cache by @Walternater in #1628
- feat(workflow): let a template keep {{ as written with {{ by @SaulMoro in #1640
- ci(lint): enable remaining array and trim anti-slop checks by @huong8373tt-beep in #1639
- feat(recall): declared asset relations on recall hits, checked by review --branch (#1552 first slice) by @Walternater in #1629
- fix(pricing): price Claude Haiku 5.5, Opus 5.5 and Sonnet 5.5 at their own rates by @pcbeingused333 in #1643
- fix(uninstall): clean replaced tool homes after re-init by @huong8373tt-beep in #1641
- fix(joycode): maintain agent index by @huong8373tt-beep in #1642
- docs(pi): clarify relocated legacy rule path by @huong8373tt-beep in #1646
- feat(session): publish sessions without local paths, and record what they ran as by @hz89Dev in #1644
- fix(uninstall): clean replaced OpenCode homes by @huong8373tt-beep in #1645
- feat(dashboard): show what every AI tool's requests cost, priced from a bundled LiteLLM snapshot by @hz89Dev in #1647
- ci(lint): reject duplicate webhook switch cases by @huong8373tt-beep in #1648
- feat(dashboard): match the website look and add a team Improvement Center by @hsuchifeng in #1631
- fix(mcp): preserve unindented examples in Codex TOML by @ydflow in #1651
- feat(sessions): read Pi and Oh My Pi transcripts by @XY-code1 in #1586
- fix(sessions): respect project cwd in readiness checks by @XY-code1 in #1652
- fix(codebase): keep wiki lint output in English by @XY-code1 in #1653
- fix(codebase): keep wiki upgrade output in English by @XY-code1 in #1654
- fix(mcp): quote literal Codex environment keys by @ydflow in #1655
- fix(iwiki): keep dual-import diagnostics in English by @XY-code1 in #1656
- fix(clone): keep verbose authentication logs in English by @XY-code1 in #1657
- feat(scorers): ask a routing question per team skill of a judged session by @kittimzhe in #1650
- feat(relations): derived rule-path edges and reconcile candidates (#1563) by @Walternater in #1636
- feat(doctor): fail until each tool trusts the project or approves its team MCP servers by @hz89Dev in #1660
- feat(lint,viz,stats): see asset relations — lint counts, health view, opens via relation (#1562, stacked) by @Walternater in #1637
- feat(doctor): catch OpenClaw plugins switched off, and warn while a tool has not asked yet by @hz89Dev in #1663
- feat(dashboard): group Distribution under Execution in the sidebar by @hsuchifeng in #1662
- feat(workflow): keep a session's finished work as a benchmark task (after #1379) by @hz89Dev in #1658
- feat(scorers): label delivered pull requests from their check, CI or protected paths before any judge runs by @hz89Dev in #1665
- ci(lint): enable the anti-slop lint rules, and fix the 23 bugs they found by @hz89Dev in #1664
- fix(reports): stop retrying a push five times when origin is unreachable by @hz89Dev in #1667
- fix(session): mask key=value secrets inside tool argument strings by @connabyss in #1669
- fix(scoring): mask secrets inside tool arguments in the transcript a judge reads by @connabyss in #1671
- feat(workflow): run a step as a team role, and link every result to the harness that produced it by @hz89Dev in #1668
- fix(workflow): three role fixes from #1668's review: command-first clones, named workflows, members.yaml by @hz89Dev in #1672
- feat(self-improvement): turn a scorer's repeated failures into one pull request, proven on every tool the team uses by @hz89Dev in #1666
- perf(workflow): read queued run records from origin in one git process, not two per run by @hz89Dev in #1673
- test: stop tests sourcing the developer's env loader through BASH_ENV by @hz89Dev in #1674
- fix(gitlab): time out stalled identity requests by @ydflow in #1675
- ci(pricing): refresh the model price catalog weekly through a pull request by @hz89Dev in #1649
- feat(sessions): read Muse Code transcripts by @XY-code1 in #1680
- test(sessions): cover reading Qoder and Qoder CN transcripts (#1418) by @Walternater in #1679
- fix(update): bypass cached checks for explicit updates by @YogeLiu in #1678
- fix(sync): 为会话启动刷新增加冷却和并发复用 by @YogeLiu in #1683
- fix(workflow): tell a prompt step its output schema under every driver by @hz89Dev in #1690
- fix(workflow): resume a run as printed, with the flags it was started with by @hz89Dev in #1693
- feat(agents): let the team repo replace the built-in teamai-recall agent by @hz89Dev in #1691
- fix(workflow): keep the commits loops and for_each items leave for the steps that start from them by @hz89Dev in #1692
- fix(workflow): hold a workflow output's schema to the keys a bundle takes by @hz89Dev in #1696
- test: cut CI time by running macOS once, splitting long files, and moving E2E repeats in process by @hz89Dev in #1694
- Per-asset effect tables for tasks that cover a team asset (#1605) by @kittimzhe in #1684
- perf(workflow): cut a handoff's origin round trips by 46% by reusing the reports fetch by @hz89Dev in #1697
- fix(lock): stop handing one lock to two processes when its owner exits mid-check by @hz89Dev in #1699
- perf(ci): stop Build waiting on the macOS unit shards by @hz89Dev in #1698
- fix(lock): stop two processes sharing a lock after a reclaimer dies holding the sentinel by @hz89Dev in #1701
- fix(update): persist self-update failures to debug.log by @Smilewithoutfalling in #1702
- fix(update): exit non-zero when a manual update fails to install by @Smilewithoutfalling in #1703
New Contributors
- @bfs2021 made their first contribution in #1455
- @ColumbusLabs made their first contribution in #1464
- @pcbeingused333 made their first contribution in #1512
- @JasonRUAN made their first contribution in #1495
- @Hstealth made their first contribution in #1560
- @HengYangDS made their first contribution in #1450
- @connabyss made their first contribution in #1669
Full Changelog: v0.28.1...v0.29.0