Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
0d1055d
[TEAM-A01-V2][VERIFIED] AUDIT-CHILD-SESSIONS-V2 — audit corrigé des s…
Jul 20, 2026
c3471a6
[TEAM-A02-V2][VERIFIED] AUDIT-PROVIDER-AUTH-V2 + ADR-SECRET-DELEGATIO…
Jul 20, 2026
97af474
[TEAM-A03][VERIFIED] audit debate substrate and multi-model ADR
Jul 20, 2026
9ad664b
[TEAM-A04][VERIFIED] audit git worktrees and windows constraints
Rwanbt Jul 20, 2026
ef48e5d
[TEAM-A05][VERIFIED] audit model catalog and pricing data licensing
Rwanbt Jul 20, 2026
99eaa2f
docs(team): consolidate final architecture, RFC, threats, and debt re…
Rwanbt Jul 21, 2026
061bfb6
[PROVISIONAL][UNREVIEWED][TEAM-G01] implement persistent locking and …
Rwanbt Jul 21, 2026
e2be78f
[PROVISIONAL][UNREVIEWED][TEAM-G01] implement persistent locking and …
Jul 21, 2026
c94cf3e
[PROVISIONAL][UNREVIEWED][TEAM-C01] implement versioned model registr…
Jul 21, 2026
a34ce40
fix(model-registry): resolve C01 typecheck findings [C01 retry]
Rwanbt Jul 21, 2026
fe6f85a
[PROVISIONAL][UNREVIEWED][TEAM-G02] feat(team): implement WorktreeMan…
Rwanbt Jul 21, 2026
aa31336
[PROVISIONAL][UNREVIEWED][TEAM-G01-FIX-TSC] fix 14 pre-existing tsc …
Rwanbt Jul 21, 2026
7b229ee
[PROVISIONAL][UNREVIEWED][TEAM-B01] create canonical multi-model cont…
Rwanbt Jul 21, 2026
8dc0ea6
[PROVISIONAL][UNREVIEWED][TEAM-C02] create generic provider catalog c…
Rwanbt Jul 21, 2026
0fe2a37
[PROVISIONAL][UNREVIEWED][TEAM-B02] migrate ProviderDiscovery to mult…
Jul 21, 2026
5f73e26
[PROVISIONAL][UNREVIEWED][TEAM-B02] add integration tests + benchmark…
Jul 23, 2026
fe4b823
[PROVISIONAL][UNREVIEWED][TEAM-C03] implement HTTP connector with sna…
Jul 23, 2026
f75122b
[PROVISIONAL][UNREVIEWED][TEAM-C04] implement pricing snapshots with …
Jul 25, 2026
b260687
[PROVISIONAL][UNREVIEWED][TEAM-B03] implement ModelInvoker with usage…
Jul 25, 2026
e6fef03
[PROVISIONAL][UNREVIEWED][TEAM-C05] implement benchmark ingestion wit…
Jul 25, 2026
f54b95c
[PROVISIONAL][UNREVIEWED][TEAM-C06] add adaptive health probe schedul…
Jul 25, 2026
d94b410
[PROVISIONAL][UNREVIEWED][TEAM-B04] implement versioned PromptRegistr…
Jul 25, 2026
a3343b7
[PROVISIONAL][UNREVIEWED][TEAM-B02-FIX] restore typed Fail for Insuff…
Jul 25, 2026
3b92a35
[PROVISIONAL][UNREVIEWED][TEAM-C07] implement transactional sync engi…
Jul 25, 2026
40a29cb
[PROVISIONAL][UNREVIEWED][TEAM-C07] fix B-1: content diff was a field…
Jul 25, 2026
99bb330
[PROVISIONAL][UNREVIEWED][TEAM-B05] add Debate non-regression gate fo…
Jul 25, 2026
0dd91ca
[PROVISIONAL][UNREVIEWED][TEAM-B05] retry: rebase onto TEAM-B02-FIX, …
Jul 25, 2026
ab3e9b1
[PROVISIONAL][UNREVIEWED][TEAM-B05] record retry outcome in scope man…
Jul 25, 2026
0c8158a
[PROVISIONAL][UNREVIEWED][TEAM-C08] implement lifecycle state machine…
Jul 25, 2026
7466496
[PROVISIONAL][UNREVIEWED][TEAM-C08] fix F1: elapsed-time governance w…
Jul 25, 2026
cbb8e41
[PROVISIONAL][UNREVIEWED][TEAM-D01] define canonical Team domain Zod …
Jul 25, 2026
58fff9c
feat(team): add durable Team store
Jul 26, 2026
13f229a
feat(team): add scoped permission broker
Jul 26, 2026
8ddeba9
fix(team): tighten permission network scopes
Jul 26, 2026
db2f820
feat(team): add atomic checkpoint manager
Jul 26, 2026
00b38a2
fix(team): classify malformed checkpoints
Jul 26, 2026
ffe31d5
feat(team): add versioned event writer
Jul 26, 2026
661da34
fix(team): validate event families at runtime
Jul 26, 2026
bb59d67
feat(team): add structured task intake
Jul 26, 2026
cf71283
test(team): cover unknown irreversible actions
Jul 26, 2026
81ea8a5
feat(team): add structured task planner
Jul 26, 2026
efe059b
fix(team): validate planner prompt input
Jul 26, 2026
c24ce7d
feat(team): add deterministic graph validator
Jul 26, 2026
2b02f0d
docs(team): record E03 scope manifest
Jul 26, 2026
4292e63
fix(team): validate graph resource boundaries
Jul 26, 2026
966454b
feat(team): add bounded plan repair
Jul 26, 2026
9d3713b
fix(team): expose bounded repair attempts
Jul 26, 2026
6720311
feat(team): add dry-run simulation for TEAM-E05
Jul 27, 2026
2654930
fix(team): wire dry-run token estimate into graph-validator BUDGET rule
Jul 27, 2026
4e8602a
fix(team): remove unreachable BUDGET branch, rename estimate.assumptions
Jul 27, 2026
b4f598c
feat(team): add candidate generator and hard filters for TEAM-F01
Jul 27, 2026
e56381f
fix(team): dedupe allowed providers, enforce uppercase region codes
Jul 27, 2026
883424d
fix(team): freeze indexed endpoints, surface unknown allow-list provi…
Jul 27, 2026
6414e1f
feat(team): add Pareto reducer and endpoint dedup for TEAM-F02
Jul 27, 2026
c694aad
fix(team): make supersededBy always reference a surviving endpoint
Jul 27, 2026
7015a29
fix(team): fail loudly on broken reducer invariants, cover numeric edges
Jul 27, 2026
6747814
feat(team): add rules-based model router for TEAM-F03
Jul 27, 2026
97925d5
fix(team): anchor the upgrade rule on the best option, not a moving i…
Jul 27, 2026
921ee27
refactor(team): drop the reviewer re-lookup and an unused parameter
Jul 27, 2026
d79c9b7
feat(team): add Bayesian performance estimator for TEAM-F04
Jul 27, 2026
aef09f9
fix(team): disclose the prior's share inside a borrowed domain estimate
Jul 27, 2026
fc88950
fix(team): refuse improper posteriors instead of asserting false cert…
Jul 27, 2026
ba7cd0a
docs(team): record F04 scope manifest
Jul 27, 2026
6221de0
feat(team): add bounded contextual routing
Jul 27, 2026
c8aa90c
feat(team): add routing evaluation report
Jul 27, 2026
a4c6bc3
docs(team): record G01 review manifest
Jul 27, 2026
5b4b699
docs(team): record G02 review manifest
Jul 27, 2026
7b55379
fix(team): enforce repository scope boundaries
Jul 27, 2026
f28f874
feat(team): add resumable rollback manager
Jul 27, 2026
56e9f64
feat(team): add read-only worker runtime
Jul 27, 2026
bc41e17
feat(team): fence worker runtime writes
Jul 27, 2026
b2e38af
feat(team): build bounded context capsules
Jul 27, 2026
8fe0fe6
fix(team): validate context capsule boundaries
Jul 27, 2026
2fe6411
feat(team): enforce bounded usage and cancellation
Jul 27, 2026
f1bd089
chore(team): normalize budget tracker test file
Jul 27, 2026
dd70251
chore(team): reconcile H04 base manifest
Jul 27, 2026
47aac76
feat(team): sandbox CLI worker runtime
Jul 27, 2026
73cbe98
fix(team): reject non-opaque CLI auth fields
Jul 27, 2026
e651c58
fix(team): bound CLI output collection
Jul 27, 2026
92f05f1
feat(team): add independent review runtime
Jul 27, 2026
fc8e303
fix(team): fail closed on unsafe review verdicts
Jul 27, 2026
834a9d3
fix(team): restore type checking of G04 rollback operations
Jul 27, 2026
4e33213
feat(team): add bounded repair coordinator for TEAM-I02
Jul 27, 2026
3a25068
fix(team): reject contradictory attempt histories in the repair coord…
Jul 27, 2026
941994d
feat(team): add local replanner for TEAM-I03
Jul 27, 2026
a19bc68
fix(team): gate plan-level commitment changes and reject duplicate ta…
Jul 27, 2026
c6d0137
feat(team): add integration runtime planner for TEAM-I04
Jul 27, 2026
c47c598
feat(team): add final validator and report builder for TEAM-I05
Jul 27, 2026
a0a1a87
feat(team): add failure classifier for TEAM-J01
Jul 27, 2026
ebe02d2
feat(team): add persistent circuit breaker registry for TEAM-J02
Jul 27, 2026
b19fab6
feat(team): add attempt manager and reassignment for TEAM-J03
Jul 27, 2026
ad87bc5
feat(team): add lead failover and pause/resume for TEAM-J04
Jul 27, 2026
33f4567
feat(team): add asynchronous human gate manager for TEAM-J05
Jul 27, 2026
f873234
[PROVISIONAL][UNREVIEWED][TEAM-K01] deterministic parallel READ sched…
Jul 27, 2026
870aa9b
[PROVISIONAL][UNREVIEWED][TEAM-K02] parallel WRITE scheduler: conflic…
Jul 27, 2026
f296879
[PROVISIONAL][UNREVIEWED][TEAM-K03] adaptive concurrency controller w…
Jul 27, 2026
5d5bc6f
[PROVISIONAL][UNREVIEWED][TEAM-K04] parallel performance certificatio…
Jul 27, 2026
2f7ea1c
[PROVISIONAL][UNREVIEWED][CORR-E-SERIES-001] dedicated tests for task…
Jul 27, 2026
306c4dd
[PROVISIONAL][UNREVIEWED][TEAM-N01-N02-N03-N04-N05-N06] T13/T14 certi…
Jul 27, 2026
c8759d9
fix(team): restore a clean typecheck in the K02 write scheduler
Jul 27, 2026
85997fc
[PROVISIONAL][UNREVIEWED][TEAM-L01] register the native team agent, a…
Jul 27, 2026
51025aa
[PROVISIONAL][UNREVIEWED][TEAM-L02] versioned, paginated, redacted HT…
Jul 27, 2026
313ac61
[PROVISIONAL][UNREVIEWED][TEAM-L03] regenerate the SDK, with an N-1 c…
Jul 27, 2026
6e5abbb
[PROVISIONAL][UNREVIEWED][TEAM-L04] headless team CLI: JSON by defaul…
Jul 27, 2026
ac81580
[PROVISIONAL][UNREVIEWED][CORR-L02-PAGINATION] declare the pagination…
Jul 28, 2026
086f2f5
[PROVISIONAL][UNREVIEWED][TEAM-M01] shared Team and registry client s…
Jul 28, 2026
9ec49e7
[PROVISIONAL][UNREVIEWED][TEAM-M02] Team surface in the TUI: waves, g…
Jul 28, 2026
ee85001
[PROVISIONAL][UNREVIEWED][TEAM-M03] desktop Team surface: interactive…
Jul 28, 2026
0b541d2
[PROVISIONAL][UNREVIEWED][TEAM-M04] mobile Team parity: resume/connec…
Jul 28, 2026
2859821
[PROVISIONAL][UNREVIEWED][TEAM-M05] Team copy in all 17 locales, and …
Jul 28, 2026
22e78bb
[PROVISIONAL][UNREVIEWED][TEAM-N05] zero-debt pass on src/team: one r…
Jul 28, 2026
373d706
merge: integrate Team V3 into dev
Jul 28, 2026
f906ce4
fix(team): stabilize snapshot CI and corruption test
Jul 28, 2026
173d088
fix(team): skip notices check without snapshot
Jul 28, 2026
73e7300
fix(team): stabilize generated SDK ordering
Jul 28, 2026
c803d05
fix(team): regenerate SDK with pinned Bun
Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
115 changes: 115 additions & 0 deletions .github/workflows/ci-model-intelligence.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: ci-model-intelligence

on:
push:
paths:
- "packages/opencode/src/model-intelligence/**"
- "packages/opencode/test/model-intelligence/**"
- "packages/opencode/migration/**"
- "packages/opencode/script/build-notices.ts"
- "THIRD_PARTY_NOTICES.md"
pull_request:
paths:
- "packages/opencode/src/model-intelligence/**"
- "packages/opencode/test/model-intelligence/**"

jobs:
schema-and-snapshot:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Stub generated models snapshot
# models.ts imports this build-time artifact, which is intentionally
# gitignored and generated by script/build.ts for real builds.
run: |
mkdir -p packages/opencode/src/provider
printf '// @ts-nocheck\n// CI stub for typecheck only - see script/build.ts for the real generator\nexport const snapshot = {}\n' > packages/opencode/src/provider/models-snapshot.js
printf '// CI stub for typecheck only - see script/build.ts for the real generator\nexport declare const snapshot: Record<string, unknown>\n' > packages/opencode/src/provider/models-snapshot.d.ts

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Typecheck model-intelligence
run: cd packages/opencode && bun run typecheck

- name: Unit tests (model-intelligence)
run: cd packages/opencode && bun test --timeout 180000 test/model-intelligence/

- name: Verify no cross-imports
run: |
if grep -rE "from ['\"].*(collective|multi-model|team)" packages/opencode/src/model-intelligence/; then
echo "ERROR: cross-import detected from model-intelligence to forbidden directories"
exit 1
fi

- name: Lint no second registry
run: |
if grep -rE "export const (REGISTRY|MODEL_REGISTRY|PROVIDER_REGISTRY)" packages/opencode/src/team/ packages/opencode/src/collective/ 2>/dev/null; then
echo "ERROR: second registry definition detected"
exit 1
fi

- name: Build THIRD_PARTY_NOTICES.md
run: |
if [ ! -f packages/opencode/model-intelligence-snapshot.json ]; then
echo "No model-intelligence snapshot committed; skipping notices regeneration."
exit 0
fi
cd packages/opencode
bun run script/build-notices.ts

- name: Verify notices unchanged
run: |
if [ ! -f packages/opencode/model-intelligence-snapshot.json ]; then
echo "No model-intelligence snapshot committed; skipping notices verification."
exit 0
fi
if ! git diff --exit-code THIRD_PARTY_NOTICES.md; then
echo "ERROR: THIRD_PARTY_NOTICES.md differs from committed version"
echo "Regenerate via: cd packages/opencode && bun run script/build-notices.ts"
exit 1
fi

license-upstream:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check upstream license unchanged
run: |
expected_license="MIT"
actual_license=$(curl -sSL -H "User-Agent: opencode-ci" \
"https://github.com/ghapi/repos/anomalyco/models.dev/license" \
| jq -r '.license.spdx_id // empty')
if [ "$actual_license" != "$expected_license" ]; then
echo "ERROR: upstream license changed: was '$expected_license', now '$actual_license'"
echo "Manual review required before continuing ingestion."
exit 1
fi
echo "Upstream license verified: $actual_license"

snapshot-freshness:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check snapshot age
run: |
snapshot_age_days=7
snapshot_generated_at=$(jq -r '.generatedAtUTC' packages/opencode/model-intelligence-snapshot.json 2>/dev/null || echo "")
if [ -z "$snapshot_generated_at" ]; then
echo "No snapshot found; CI will produce one in next sync."
exit 0
fi
snapshot_epoch=$(date -d "$snapshot_generated_at" +%s 2>/dev/null || echo "0")
now_epoch=$(date +%s)
age_days=$(( (now_epoch - snapshot_epoch) / 86400 ))
if [ "$age_days" -gt "$snapshot_age_days" ]; then
echo "WARN: snapshot is $age_days days old (threshold $snapshot_age_days)"
echo "Consider running registry sync."
fi
5 changes: 5 additions & 0 deletions .husky/_/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Ignore everything in this directory except the .gitignore itself.
# This is a generated directory used by husky (git hooks).
# It is created by `bun install` and should never be committed.
*
!.gitignore
12 changes: 12 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,15 @@ bunx biome check --changed --no-errors-on-unmatched .
if command -v shellcheck >/dev/null 2>&1; then
git diff --cached --name-only --diff-filter=ACM | grep '\.sh$' | xargs -r shellcheck
fi

# 3. TEAM-G01: lease validate (skip if no lease is present)
# A worker holding a lease MUST validate it is still ACTIVE before commit.
# The lease id is read from .team/active_lease (if present); absent means
# "not under a lease" and the check is skipped (fail-open: this is a CI gate
# for workers, the integration gate is team:preintegrate-check on dev/Team).
if [ -f .team/active_lease ]; then
LEASE_ID="$(cat .team/active_lease)"
WORKER_ID="$(cat .team/active_worker 2>/dev/null || echo unknown)"
bun run team validate --lease-id "$LEASE_ID" --worker "$WORKER_ID" --git-root "$(pwd)"
bun run team precommit-check --lease-id "$LEASE_ID" --git-root "$(pwd)" >/dev/null
fi
25 changes: 25 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,28 @@ if (process.versions.bun !== expectedBunVersion) {
}
'
bun run typecheck

# TEAM-G01: integration gate. If a push targets a protected branch (main, dev,
# opti-ui, Team-build-opti-ui, Team), refuse unless the worker holds an
# authorized lease and patch-id is stable.
PROTECTED_BRANCHES='^(main|dev|opti-ui|Team-build-opti-ui|Team)$'
while read -r LOCAL_REF LOCAL_SHA REMOTE_REF REMOTE_SHA; do
BRANCH="${REMOTE_REF#refs/heads/}"
if echo "$BRANCH" | grep -E "$PROTECTED_BRANCHES" >/dev/null 2>&1; then
echo "Refusing push to protected branch: $BRANCH" >&2
echo "All pushes to protected branches must go through a temporary push-ref" >&2
echo "and be cherry-picked by MM1, not pushed directly. TEAM-G01 enforces this." >&2
exit 2
fi
done

# If a worker holds a lease, run preintegrate-check (scope + patch-id).
if [ -f .team/active_lease ]; then
LEASE_ID="$(cat .team/active_lease)"
WORKER_ID="$(cat .team/active_worker 2>/dev/null || echo unknown)"
BASE_SHA="$(cat .team/base_sha 2>/dev/null || echo )"
if [ -n "$BASE_SHA" ]; then
bun run team validate --lease-id "$LEASE_ID" --worker "$WORKER_ID" >/dev/null
bun run team preintegrate-check --lease-id "$LEASE_ID" --base "$BASE_SHA" --git-root "$(pwd)" >/dev/null
fi
fi
26 changes: 26 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# THIRD_PARTY_NOTICES

Generated by `script/build-notices.ts` at 2026-07-21T00:00:00Z

This file is auto-generated from the model-intelligence registry snapshot.
Do not edit manually. Regenerate via `bun run build-notices`.

Source registry snapshot is bundled with this release.

## MIT

### catalog:models.dev:api.json

- License: MIT
- Copyright: Copyright (c) 2025 models.dev
- License file: https://github.com/anomalyco/models.dev/blob/main/LICENSE
- Confidence: official
- URL: https://models.dev/api.json

---

## Verification

```bash
bun run build-notices && git diff --exit-code THIRD_PARTY_NOTICES.md
```
Loading
Loading