Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
383 commits
Select commit Hold shift + click to select a range
0877e6f
build(build): synchronize shared fixture aliases after staging cleanup
adrianwebb Aug 10, 2026
a9c8484
Apply Apache-2.0 repository license
Aug 10, 2026
75f6ea8
build(source): complete repository and singleton workspace migration
adrianwebb Aug 11, 2026
e2db6d2
build(build): resolve staging lineage for managed Market API workspace
adrianwebb Aug 11, 2026
e96fb78
stage: merge staging into migration/final-platform-market-architecture
adrianwebb Aug 11, 2026
4a8b8ad
build(build): merge live staging lineage into migration portfolio
adrianwebb Aug 11, 2026
b78152e
fix(sdk): verify standalone market gateway workspace
adrianwebb Aug 11, 2026
f53b2fd
fix(sdk): reconcile canonical organization remotes
adrianwebb Aug 11, 2026
b24eb01
fix(github): observe migrated repository branches live
adrianwebb Aug 11, 2026
8efb8db
fix(stage): merge workspace root before child repositories
adrianwebb Aug 11, 2026
06aa88d
fix(stage): finalize conflict-free merge recovery
adrianwebb Aug 11, 2026
56dbbfc
fix(stage): resume operator-resolved staging merges
adrianwebb Aug 11, 2026
c818975
fix(stage): isolate nested save resume context
adrianwebb Aug 11, 2026
38f5db4
fix(market-api): separate runtime build output from tests
adrianwebb Aug 11, 2026
c383b8b
fix(reconcile): make organization migration idempotent
adrianwebb Aug 11, 2026
b9489a4
build(build): make generated Platform workspace operational
adrianwebb Aug 11, 2026
048311f
build(build): recognize exact detached Platform gitlinks
adrianwebb Aug 11, 2026
fa694e6
build(build): reconcile and publish paired content authority
adrianwebb Aug 11, 2026
a7b70ac
chore(deps): update @treeseed/core and @treeseed/sdk pointers
adrianwebb Aug 11, 2026
ed38abd
refactor(admin): reconfigure project architecture
adrianwebb Aug 11, 2026
1703d9d
docs(content): restructure documentation and update dependencies
adrianwebb Aug 11, 2026
27aaec6
chore(deps): update @treeseed/core and @treeseed/sdk
adrianwebb Aug 11, 2026
a8aca68
build(build): integrate receipt-based repository federation
adrianwebb Aug 11, 2026
0cef4f4
build(build): federate update isolation correction
adrianwebb Aug 11, 2026
704a767
build(build): propagate cutover replay contract
adrianwebb Aug 11, 2026
e5c0058
build(build): integrate canonical control-plane topology
adrianwebb Aug 11, 2026
8cc4c4b
build(deps): update @treeseed/core and @treeseed/sdk
adrianwebb Aug 11, 2026
7011aa7
chore(deps): update @treeseed/core and @treeseed/sdk
adrianwebb Aug 11, 2026
181d9f6
build(deps): update @treeseed/sdk and @treeseed/core commit pointers
adrianwebb Aug 11, 2026
7a34e9e
build(build): record first singleton Market route extraction
adrianwebb Aug 11, 2026
4ecf692
build(build): Link governance authority to repository receipts
adrianwebb Aug 11, 2026
542997d
build(build): Bound staging migration fetch history
adrianwebb Aug 11, 2026
5960487
feat(agent-lab): expand monitoring guarantees and add workspace focus
adrianwebb Aug 16, 2026
a426581
chore(deps): update @treeseed/core dependency
adrianwebb Aug 16, 2026
31d40a2
build(build): Resolve staging integration conflicts
adrianwebb Aug 16, 2026
a71545a
build(build): Fix resumable stage receipt fencing
adrianwebb Aug 16, 2026
a7d2800
build(build): Fix Platform runtime scene template variables
adrianwebb Aug 16, 2026
eaa12f6
build(build): Make Platform snapshots clean template fulfillments
adrianwebb Aug 16, 2026
2aad643
build(build): Fix Platform initialization verification
adrianwebb Aug 16, 2026
4cc4de6
build(build): Make the complete agent guarantee catalog portable
adrianwebb Aug 18, 2026
1991eb1
build(build): Preserve Market guarantee ownership in Platform
adrianwebb Aug 18, 2026
79a13be
chore(admin): bump version and update dependencies
adrianwebb Aug 18, 2026
255852f
chore(deps): update @treeseed/core and @treeseed/sdk
adrianwebb Aug 18, 2026
6991528
build(build): make fresh Platform worksets self-bootstrapping
adrianwebb Aug 18, 2026
84f72a6
build(build): fix standalone SDK lockfile integrity for clean Platform
adrianwebb Aug 18, 2026
1565686
build(build): fix standalone SDK lockfile integrity for clean Platform
adrianwebb Aug 18, 2026
db05cd6
feat: reconcile repository-backed project libraries
adrianwebb Aug 25, 2026
6649ce8
fix: synchronize npm lockfile
adrianwebb Aug 25, 2026
77d7f96
Merge pull request #1 from treeseed-ai/codex/library-reconciliation-v3
adrianwebb Aug 25, 2026
5ad4d4f
feat: integrate managed admin authentication runtime
adrianwebb Aug 26, 2026
06848e0
feat: integrate admin browser BFF and catalog UI
adrianwebb Aug 26, 2026
319d2c0
fix: hydrate released platform candidates
adrianwebb Aug 26, 2026
a88d8b7
fix: lock released platform candidates
adrianwebb Aug 26, 2026
70daae4
fix: build Admin only from released managed artifacts
adrianwebb Aug 26, 2026
244186c
fix: resolve standalone Admin plugin from packed output
adrianwebb Aug 26, 2026
250bee2
fix: build packed Admin plugin into managed image
adrianwebb Aug 26, 2026
598a57f
fix: seal runnable Admin image runtime
adrianwebb Aug 26, 2026
1916e47
Merge pull request #3 from treeseed-ai/codex/admin-platform-migration
adrianwebb Aug 26, 2026
d40799d
chore: release Admin 0.12.59-rc.1
adrianwebb Aug 26, 2026
9db631c
Merge pull request #4 from treeseed-ai/codex/admin-0.12.59-rc.1
adrianwebb Aug 26, 2026
fafe9fd
chore: release Admin 0.12.59-rc.2
adrianwebb Aug 26, 2026
996bfd3
Merge pull request #5 from treeseed-ai/codex/admin-0.12.59-rc.2
adrianwebb Aug 26, 2026
164b9f3
chore: release Admin 0.12.59-rc.3
adrianwebb Aug 26, 2026
392ee9f
Merge pull request #6 from treeseed-ai/codex/admin-0.12.59-rc.3
adrianwebb Aug 26, 2026
7e05b89
chore: release Admin 0.12.59-rc.4
adrianwebb Aug 26, 2026
0d0b341
Merge pull request #7 from treeseed-ai/codex/admin-0.12.59-rc.4
adrianwebb Aug 26, 2026
e18c890
fix: standardize Admin container publisher credentials
adrianwebb Aug 26, 2026
17952db
Merge pull request #8 from treeseed-ai/codex/standard-dockerhub-publi…
adrianwebb Aug 26, 2026
544e938
chore: release Admin 0.12.59-rc.5
adrianwebb Aug 26, 2026
c2d27bc
Merge pull request #9 from treeseed-ai/codex/admin-0.12.59-rc.5
adrianwebb Aug 26, 2026
c4ca81d
feat: add managed Admin development runtime
adrianwebb Aug 26, 2026
b0d5697
Merge pull request #10 from treeseed-ai/codex/development-runtime-pro…
adrianwebb Aug 26, 2026
3b948b3
fix: join admin to managed component networks
adrianwebb Aug 26, 2026
4a6628e
Merge pull request #11 from treeseed-ai/codex/managed-network-bootstrap
adrianwebb Aug 26, 2026
80aa999
chore: prepare 0.12.59-rc.6
adrianwebb Aug 26, 2026
e51357f
Merge pull request #12 from treeseed-ai/codex/release-0.12.59-rc.6
adrianwebb Aug 26, 2026
9b54d47
Integrate Admin BFF with SDK operation catalog
adrianwebb Aug 26, 2026
fdf0ed3
Merge pull request #13 from treeseed-ai/codex/catalog-driven-admin-bff
adrianwebb Aug 26, 2026
ea773f4
feat(admin): complete account and team catalog migration (#14)
adrianwebb Aug 26, 2026
f42d325
refactor(admin): catalog public user profiles (#15)
adrianwebb Aug 26, 2026
1366b7a
chore: prepare Admin 0.12.59-rc.7
adrianwebb Aug 26, 2026
f037b24
Merge pull request #16 from treeseed-ai/codex/admin-0.12.59-rc.7
adrianwebb Aug 26, 2026
db8d701
fix: submit inspected account revisions
adrianwebb Aug 26, 2026
7c74faf
test(account): lock released revision contracts
adrianwebb Aug 26, 2026
9a1cf59
Merge pull request #17 from treeseed-ai/codex/account-concurrency-ui
adrianwebb Aug 26, 2026
db11d91
chore: prepare Admin 0.12.59-rc.8
adrianwebb Aug 26, 2026
da9d7ac
Merge pull request #18 from treeseed-ai/codex/admin-0.12.59-rc.8
adrianwebb Aug 26, 2026
1a8cd02
ci: avoid duplicate feature verification (#19)
adrianwebb Aug 26, 2026
c186b01
fix(auth): fail closed without reset token (#20)
adrianwebb Aug 26, 2026
0d23b23
build(standards): publish Admin guarantee catalog (#21)
adrianwebb Aug 26, 2026
7fcd7e6
chore(release): prepare Admin 0.12.59-rc.9 (#22)
adrianwebb Aug 26, 2026
d10dd5f
feat(admin): bind composition guarantee verifiers
adrianwebb Aug 27, 2026
725bac3
feat(admin): verify packed identity and account routes
adrianwebb Aug 27, 2026
6023da4
Merge pull request #23 from treeseed-ai/codex/admin-composition-verif…
adrianwebb Aug 27, 2026
af41f6e
chore(release): prepare Admin 0.12.59-rc.10
adrianwebb Aug 27, 2026
64bc306
Merge pull request #24 from treeseed-ai/codex/admin-0.12.59-rc.10
adrianwebb Aug 27, 2026
04bb6d7
feat: containerize live Admin development
adrianwebb Aug 27, 2026
de4eb32
Merge pull request #26 from treeseed-ai/codex/container-live-development
adrianwebb Aug 27, 2026
67d8d0f
feat(auth): bind Admin browser guarantees
adrianwebb Aug 27, 2026
e72a106
fix(auth): preserve browser OAuth navigation
adrianwebb Aug 27, 2026
844078c
test: align account scenes with catalog state
adrianwebb Aug 27, 2026
3800511
fix(admin): preserve catalog security and team authority
adrianwebb Aug 27, 2026
8b8d846
fix(admin): preserve API problem details
adrianwebb Aug 27, 2026
93ecaea
test(teams): declare expected stale response source
adrianwebb Aug 27, 2026
50b9010
fix(teams): preserve idempotent invitations and truthful overview
adrianwebb Aug 27, 2026
a31d7a4
test(teams): validate unavailable activity state
adrianwebb Aug 27, 2026
d69306c
fix(teams): make invitation lifecycle idempotent
adrianwebb Aug 27, 2026
a736e2f
fix(teams): preserve invitation revoke concurrency
adrianwebb Aug 27, 2026
a8d79d3
fix(admin): replay API-signed browser confirmations
adrianwebb Aug 27, 2026
079c19e
test(teams): follow current confirmation mail contract
adrianwebb Aug 27, 2026
4b53eb1
test(auth): prove explicit invited email confirmation
adrianwebb Aug 27, 2026
e8f817f
test(auth): approve existing-user invitation session
adrianwebb Aug 27, 2026
41043da
fix(teams): make membership mutations idempotent
adrianwebb Aug 27, 2026
82ab8e7
test(admin): follow direct sign-out navigation
adrianwebb Aug 27, 2026
4c71541
test(admin): prove ownership session approvals
adrianwebb Aug 27, 2026
dfac25d
test(admin): prove member removal session boundaries
adrianwebb Aug 27, 2026
4bf6229
test(admin): follow contributor team navigation
adrianwebb Aug 27, 2026
ff85695
test(admin): target membership leave mutation
adrianwebb Aug 27, 2026
def3b71
test(admin): scope expected last-owner rejection
adrianwebb Aug 27, 2026
e43130f
test(admin): follow owner lifecycle contract
adrianwebb Aug 27, 2026
cfa517e
fix(admin): normalize team overview access
adrianwebb Aug 27, 2026
630ccb4
test(admin): resolve lifecycle deletion blockers
adrianwebb Aug 27, 2026
7838f79
fix(admin): retire uncatalogued auth provider route
adrianwebb Aug 27, 2026
17e83a7
test(admin): reject deleted identity at OAuth boundary
adrianwebb Aug 27, 2026
1b4acde
test(admin): assert API-owned deleted identity error
adrianwebb Aug 27, 2026
28aecd5
test(admin): scope expected deletion validation error
adrianwebb Aug 27, 2026
7614fcf
Merge pull request #29 from treeseed-ai/codex/admin-browser-scene-bin…
adrianwebb Aug 27, 2026
d51226c
chore(release): prepare Admin 0.12.59-rc.11
adrianwebb Aug 27, 2026
636191c
Merge pull request #30 from treeseed-ai/codex/admin-0.12.59-rc.11
adrianwebb Aug 27, 2026
b557ad8
fix(managed): allow the declared Admin origin
adrianwebb Aug 27, 2026
9d6e487
Merge pull request #32 from treeseed-ai/codex/admin-managed-origin-rc12
adrianwebb Aug 27, 2026
91345b2
fix: hydrate redirect toast UI contract (#34)
adrianwebb Aug 27, 2026
e9574a4
test: prove responsive account and team journeys (#36)
adrianwebb Aug 27, 2026
21bb6ea
fix(auth): use one credential boundary for device login (#38)
adrianwebb Aug 27, 2026
49d7266
fix(auth): align login guarantee with OAuth boundary (#39)
adrianwebb Aug 27, 2026
65cf06d
chore(release): prepare admin 0.12.59-rc.16 (#40)
adrianwebb Aug 27, 2026
e2fc53f
fix(auth): streamline first-party device sign-in (#41)
adrianwebb Aug 27, 2026
b8b7d5f
ci: promote sealed Admin release artifacts
adrianwebb Aug 27, 2026
7e897fd
Merge pull request #42 from treeseed-ai/codex/release-custody
adrianwebb Aug 27, 2026
b659db8
ci: admit staging candidate environment
adrianwebb Aug 27, 2026
1613faf
fix: publish accepted archive by absolute path
adrianwebb Aug 27, 2026
e1ba432
Merge pull request #43 from treeseed-ai/codex/candidate-development-e…
adrianwebb Aug 27, 2026
96eb547
ci: use protected staging repository credentials
adrianwebb Aug 27, 2026
e1b7d0b
Merge pull request #44 from treeseed-ai/codex/protected-staging-candi…
adrianwebb Aug 27, 2026
78208d2
ci: scope staging candidates to development
adrianwebb Aug 27, 2026
d98ad21
Merge pull request #45 from treeseed-ai/codex/restore-development-can…
adrianwebb Aug 27, 2026
e3850a2
release: prepare Admin 0.12.59-rc.18
adrianwebb Aug 27, 2026
8c914f1
Merge pull request #46 from treeseed-ai/codex/release-0.12.59-rc.18
adrianwebb Aug 27, 2026
29bf65a
fix(auth): refresh expired browser sessions
adrianwebb Aug 28, 2026
1f88f94
Merge pull request #48 from treeseed-ai/codex/release-0.12.59-rc.18
adrianwebb Aug 28, 2026
4feebfa
fix(auth): use full navigation for sign-in posts
adrianwebb Aug 28, 2026
5a8f3bb
Merge pull request #50 from treeseed-ai/codex/auth-sign-in-full-navig…
adrianwebb Aug 28, 2026
914d61f
fix(admin): restore authenticated routes and themed errors
adrianwebb Aug 28, 2026
ac2a9b4
Merge pull request #52 from treeseed-ai/codex/admin-authenticated-rou…
adrianwebb Aug 28, 2026
64aeac9
fix: consume canonical TreeSeed logo
adrianwebb Aug 28, 2026
b061cd0
test: resolve brand asset through package exports
adrianwebb Aug 28, 2026
3d41053
Merge pull request #54 from treeseed-ai/codex/canonical-ui-brand
adrianwebb Aug 28, 2026
4a6e2f2
ci: remove legacy direct content publisher
adrianwebb Aug 31, 2026
2e6962e
policy: enforce canonical deployment boundaries (#56)
adrianwebb Aug 31, 2026
24ba774
policy: enforce canonical deployment boundaries (#55)
adrianwebb Aug 31, 2026
efc7da9
feat: surface provider context capacity alerts
adrianwebb Sep 1, 2026
b050f37
Merge pull request #59 from treeseed-ai/codex/provider-context-alerts
adrianwebb Sep 1, 2026
1bec03d
release: publish Cloudflare Pages archive
adrianwebb Sep 2, 2026
8b88503
Merge pull request #61 from treeseed-ai/codex/admin-pages-archive
adrianwebb Sep 2, 2026
c853023
release: prepare Admin 0.12.59-rc.23
adrianwebb Sep 2, 2026
ca72f89
Merge pull request #62 from treeseed-ai/codex/admin-rc23
adrianwebb Sep 2, 2026
8409e55
feat(services): configure portable hosted state
adrianwebb Sep 3, 2026
f2aa40a
Merge pull request #64 from treeseed-ai/codex/admin-r2-state-wizard
adrianwebb Sep 3, 2026
38f1a2c
feat(admin): compose workspaces from shared UI
adrianwebb Sep 3, 2026
c1737d4
chore(deps): lock unified UI rc12
adrianwebb Sep 3, 2026
67a741a
Merge pull request #65 from treeseed-ai/codex/issue-367-unified-ui-pa…
adrianwebb Sep 3, 2026
b1b450f
feat(vault): use SDK client-side cryptography
adrianwebb Sep 3, 2026
245ab0f
Merge pull request #67 from treeseed-ai/codex/issue-66-service-vault-…
adrianwebb Sep 3, 2026
dabc760
chore(release): admin 0.12.59-rc.25
adrianwebb Sep 3, 2026
104e5ed
Merge pull request #69 from treeseed-ai/codex/issue-68-release-rc25
adrianwebb Sep 3, 2026
ede3182
chore(release): admin 0.12.59-rc.26
adrianwebb Sep 3, 2026
cbbf24f
Merge pull request #71 from treeseed-ai/codex/issue-70-sdk85-rc26
adrianwebb Sep 3, 2026
e55fb4f
fix(release): bind Admin channels to protected branches (#73)
adrianwebb Sep 3, 2026
5178952
Replace browser vault with managed OpenBao credential forms
adrianwebb Sep 5, 2026
695fcd2
Replace browser vault with managed OpenBao credential forms (#75)
adrianwebb Sep 5, 2026
417df0d
fix(services): consume canonical cursor collections before rendering …
adrianwebb Sep 5, 2026
22e4436
fix(services): consume canonical cursor collections before rendering …
adrianwebb Sep 5, 2026
1a943b1
feat(services): guide account setup and remove duplicated credential …
adrianwebb Sep 5, 2026
b92f3a8
Merge pull request #80 from treeseed-ai/codex/services-guided-setup
adrianwebb Sep 5, 2026
1b49ab7
Guide service connections through one focused wizard step
adrianwebb Sep 5, 2026
adb00cc
Merge pull request #82 from treeseed-ai/codex/services-real-wizard
adrianwebb Sep 5, 2026
3ca242b
fix(services): send exact revisions for connection mutations
adrianwebb Sep 5, 2026
1f24cdf
chore(release): pin verified UI theme fix for admin rc31
adrianwebb Sep 5, 2026
4890bed
fix(services): send If-Match for save and disconnect (#84)
adrianwebb Sep 5, 2026
9f0ff9a
feat(services): adopt published responsive discovery controls (#85)
adrianwebb Sep 6, 2026
231c7d4
feat(services): adopt published responsive discovery controls (#85) (…
adrianwebb Sep 6, 2026
2d4541e
fix(services): retain form adapters across navigation (#87)
adrianwebb Sep 6, 2026
1590afe
fix(services): retain form adapters across navigation (#87) (#88)
adrianwebb Sep 6, 2026
4c3bf78
feat(services): open existing connections directly in guided editor (…
adrianwebb Sep 6, 2026
121fdd1
test(services): enforce direct editor routing without retired mode gates
adrianwebb Sep 6, 2026
46b868d
fix(dev): restore native managed Admin feedback loop (#91)
adrianwebb Sep 6, 2026
32b7bf7
fix: clarify connection details and isolate confirmed disconnect
adrianwebb Sep 6, 2026
75f4469
fix: keep disconnect panel initially hidden without invalid step comp…
adrianwebb Sep 6, 2026
61f2710
fix: limit service forms to declared provider settings
adrianwebb Sep 6, 2026
6fcac9c
feat: expose development vault flow for user feedback
adrianwebb Sep 6, 2026
4589d26
feat: separate connection statistics and frame wizard steps
adrianwebb Sep 6, 2026
d08e390
fix(services): use singular Vault navigation label
adrianwebb Sep 6, 2026
255c56d
feat(capacity): add team install downloads and AI workspace route
adrianwebb Sep 6, 2026
291c3b9
fix(services): remove hidden workflow configuration capability expansion
adrianwebb Sep 6, 2026
4693931
fix(teams): expose AI management beside capacity
adrianwebb Sep 6, 2026
7654bed
feat(capacity): focused provider management and AI setup review (#96)
adrianwebb Sep 6, 2026
9d7f164
fix(capacity): complete inventory and expose scoped grant state (#96)
adrianwebb Sep 7, 2026
dfc7e4a
feat: save and manage AI drafts through the live API (#96)
adrianwebb Sep 7, 2026
ae76cce
chore(release): pin accepted SDK rc92 and UI rc18
adrianwebb Sep 7, 2026
2fdf27d
chore(release): prepare Admin rc34
adrianwebb Sep 7, 2026
a4b9c7d
test(capacity): register install routes and verify simplified surfaces
adrianwebb Sep 7, 2026
cadbb59
Merge pull request #94 from treeseed-ai/codex/unified-workflow-task
adrianwebb Sep 7, 2026
8279938
fix(help): ship UI rc19 envelope and retry corrections
adrianwebb Sep 7, 2026
cff98fd
fix(help): ship UI rc19 envelope and retry corrections (#98)
adrianwebb Sep 7, 2026
c357b82
Reconcile main ancestry into staging (treeseed-ai/platform#462)
adrianwebb Sep 8, 2026
6521fa0
Run required verification for ancestry-only pull requests
adrianwebb Sep 8, 2026
ca1ba1b
Merge pull request #100 from treeseed-ai/codex/reconcile-main-ancestry
adrianwebb Sep 8, 2026
689c745
feat(identity): replace Admin local authentication with shared opaque…
adrianwebb Sep 9, 2026
ddf82f8
test(identity): verify Cloudflare application alongside Node
adrianwebb Sep 9, 2026
585e31f
Merge pull request #102 from treeseed-ai/codex/identity-admin-session
adrianwebb Sep 9, 2026
cc0d8fc
fix: hash normalized component runtime metadata
adrianwebb Sep 10, 2026
a61bb9e
Merge pull request #104 from treeseed-ai/codex/component-runtime-cano…
adrianwebb Sep 10, 2026
b6eafa1
fix: reissue Admin metadata without changing its application image
adrianwebb Sep 10, 2026
74ba070
chore: keep release tooling in its bounded module
adrianwebb Sep 10, 2026
31df5fa
test: verify scoped metadata publication and immutable replay
adrianwebb Sep 10, 2026
84f5796
Merge pull request #105 from treeseed-ai/codex/admin-runtime-metadata…
adrianwebb Sep 10, 2026
7e6d8c8
fix(identity): wire managed Admin credentials and trusted HTTPS
adrianwebb Sep 10, 2026
499b3e3
Merge pull request #107 from treeseed-ai/codex/identity-admin-runtime…
adrianwebb Sep 10, 2026
717b8b2
chore(release): prepare 0.12.59-rc.37 for live Identity cutover
adrianwebb Sep 10, 2026
efe020d
Merge pull request #108 from treeseed-ai/codex/identity-live-rc37
adrianwebb Sep 10, 2026
9b8525f
fix(brand): restore canonical TreeSeed favicon
adrianwebb Sep 10, 2026
18862e4
Merge pull request #110 from treeseed-ai/codex/auth-favicon
adrianwebb Sep 10, 2026
7b1920c
Ignore generated Admin favicon
adrianwebb Sep 12, 2026
d2e440e
Merge pull request #112 from treeseed-ai/codex/ignore-generated-brand…
adrianwebb Sep 12, 2026
932d53c
Merge remote-tracking branch 'origin/main' into codex/reconcile-main-…
adrianwebb Sep 15, 2026
9d6fbc5
Merge pull request #113 from treeseed-ai/codex/reconcile-main-history
adrianwebb Sep 15, 2026
ff8d7db
Align agent execution with living graph and allocation contracts
adrianwebb Sep 21, 2026
7859b6e
Remove retired capacity-plan client paths and keep tests portable
adrianwebb Sep 21, 2026
d58b38a
Verify Admin with exact integrated UI artifact (#114)
adrianwebb Sep 30, 2026
bf62a93
Resolve test assets outside the Vitest module runner (#114)
adrianwebb Sep 30, 2026
68b8391
Integrate retired allocation path removal on staging (#115)
adrianwebb Sep 30, 2026
e9ca087
docs: require complete automated coverage and YAML handler ownership
adrianwebb Oct 2, 2026
e8bedb1
Merge pull request #116 from treeseed-ai/codex/automated-coverage-gui…
adrianwebb Oct 2, 2026
4b5e811
Require complete unit and integration suites before acceptance
adrianwebb Oct 2, 2026
3999d74
Merge pull request #117 from treeseed-ai/codex/pre-acceptance-full-su…
adrianwebb Oct 2, 2026
4595668
chore: preserve squash-integrated history (#118)
adrianwebb Oct 5, 2026
4797f18
Merge pull request #119 from treeseed-ai/codex/cleanup-integrated-his…
adrianwebb Oct 5, 2026
948fa60
chore: preserve original merged-PR lineage bf62a9358e37 (#118)
adrianwebb Oct 5, 2026
fdec338
chore: preserve original merged-PR lineage 1f24cdf778fa (#118)
adrianwebb Oct 5, 2026
3367eb9
Merge pull request #120 from treeseed-ai/codex/cleanup-merged-pr-line…
adrianwebb Oct 5, 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
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.git
.github
.local
.treeseed
dist
node_modules
release-assets
artifacts
coverage
docs
tests
12 changes: 5 additions & 7 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
type: choice
options:
- staging
- prod
- production
action_kind:
required: true
default: deploy_web
Expand All @@ -21,16 +21,13 @@ on:
project_id:
required: false
type: string
preview_id:
required: false
type: string

jobs:
web:
runs-on: ubuntu-latest
permissions:
contents: read
environment: ${{ inputs.environment == 'prod' && 'production' || 'staging' }}
environment: ${{ inputs.environment }}
defaults:
run:
working-directory: docs
Expand All @@ -40,12 +37,14 @@ jobs:
TREESEED_CLOUDFLARE_ACCOUNT_ID: ${{ vars.TREESEED_CLOUDFLARE_ACCOUNT_ID }}
TREESEED_CLOUDFLARE_PAGES_PROJECT_NAME: ${{ vars.TREESEED_CLOUDFLARE_PAGES_PROJECT_NAME || 'treeseed-admin-docs' }}
TREESEED_CONTENT_BUCKET_NAME: ${{ vars.TREESEED_CONTENT_BUCKET_NAME }}
TREESEED_TEAM_ID: treeseed
TREESEED_R2_ACCESS_KEY_ID: ${{ secrets.TREESEED_R2_ACCESS_KEY_ID }}
TREESEED_R2_SECRET_ACCESS_KEY: ${{ secrets.TREESEED_R2_SECRET_ACCESS_KEY }}
TREESEED_CONTENT_BUCKET_BINDING: ${{ vars.TREESEED_CONTENT_BUCKET_BINDING }}
TREESEED_PROJECT_ID: ${{ inputs.project_id || vars.TREESEED_PROJECT_ID || 'admin' }}
TREESEED_WORKFLOW_ACTION: ${{ inputs.action_kind }}
TREESEED_WORKFLOW_ENVIRONMENT: ${{ inputs.environment }}
TREESEED_WORKFLOW_PROJECT: ${{ inputs.project_id || vars.TREESEED_PROJECT_ID || 'admin' }}
TREESEED_WORKFLOW_PREVIEW_ID: ${{ inputs.preview_id }}
steps:
- uses: actions/checkout@v4

Expand All @@ -69,5 +68,4 @@ jobs:
set -euo pipefail
EXTRA_ARGS=()
if [[ -n "${TREESEED_WORKFLOW_PROJECT:-}" ]]; then EXTRA_ARGS+=(--project-id "${TREESEED_WORKFLOW_PROJECT}"); fi
if [[ -n "${TREESEED_WORKFLOW_PREVIEW_ID:-}" ]]; then EXTRA_ARGS+=(--preview-id "${TREESEED_WORKFLOW_PREVIEW_ID}"); fi
node ./node_modules/@treeseed/sdk/scripts/tenant-workflow-action.js --action "${TREESEED_WORKFLOW_ACTION}" --environment "${TREESEED_WORKFLOW_ENVIRONMENT}" "${EXTRA_ARGS[@]}"
135 changes: 107 additions & 28 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,111 @@
name: Publish TreeSeed Admin

name: Build or Promote TreeSeed Admin Candidate
on:
push:
tags:
- "*.*.*"
workflow_dispatch:

branches: [staging, main]
tags: ["*.*.*"]
paths-ignore: ['.github/workflows/publish.yml', '.github/workflows/component-revision.yml', 'scripts/release/reissue-component.ts', 'tests/contract/package/component-revision.test.ts', 'tests/contract/package/admin-package.test.ts']
jobs:
publish:
if: startsWith(github.ref, 'refs/tags/') && !contains(github.ref_name, '-')
runs-on: ubuntu-latest
permissions:
contents: write
environment: production
candidate-package:
if: github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/main'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: 22
registry-url: https://registry.npmjs.org
- run: npm run release:setup
- run: bash -lc 'npm run verify:local'
- run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create GitHub release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create "${GITHUB_REF_NAME}" --generate-notes --verify-tag
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with: { node-version: 24 }
- run: npm ci --workspaces=false --no-audit --no-fund
- run: npm run verify:direct
- name: Build immutable Cloudflare Pages application
run: |
npm run build:pages
test -f .treeseed/app-dist/_worker.js/index.js
test -f .treeseed/app-dist/_routes.json
mkdir -p source-assets
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
--create --gzip --file source-assets/admin-pages.tar.gz \
--directory .treeseed/app-dist .
tar --list --gzip --file source-assets/admin-pages.tar.gz | grep -Fx './_worker.js/index.js'
- run: npm pack --json --ignore-scripts --pack-destination source-assets && npm sbom --sbom-format cyclonedx > source-assets/sbom.cdx.json
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with: { name: "admin-source-${{ github.sha }}", path: source-assets/, if-no-files-found: error }
candidate-build:
if: github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/main'
needs: candidate-package
environment: ${{ github.ref_name == 'main' && 'production' || 'staging' }}
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
- { arch: amd64, platform: linux/amd64, runner: ubuntu-24.04 }
- { arch: arm64, platform: linux/arm64, runner: ubuntu-24.04-arm }
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with: { username: "${{ vars.DOCKERHUB_USERNAME }}", password: "${{ secrets.DOCKERHUB_TOKEN }}" }
- uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8
with: { context: ., platforms: "${{ matrix.platform }}", push: true, tags: "treeseed/admin:candidate-${{ github.sha }}-${{ matrix.arch }}", sbom: true, provenance: mode=max }
candidate-seal:
if: github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/main'
needs: candidate-build
environment: ${{ github.ref_name == 'main' && 'production' || 'staging' }}
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with: { node-version: 24 }
- run: npm ci --ignore-scripts --workspaces=false --no-audit --no-fund
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with: { username: "${{ vars.DOCKERHUB_USERNAME }}", password: "${{ secrets.DOCKERHUB_TOKEN }}" }
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with: { name: "admin-source-${{ github.sha }}", path: release-assets }
- name: Seal exact image and component assets
run: |
candidate="candidate-${GITHUB_SHA}"
docker buildx imagetools create -t "treeseed/admin:${candidate}" "treeseed/admin:${candidate}-amd64" "treeseed/admin:${candidate}-arm64"
export TREESEED_ADMIN_DIGEST="$(docker buildx imagetools inspect "treeseed/admin:${candidate}" --format '{{json .Manifest}}' | jq -r '.digest')"
[[ "$TREESEED_ADMIN_DIGEST" =~ ^sha256:[a-f0-9]{64}$ ]]
export TREESEED_RELEASE="$(node -p "require('./package.json').version")" TREESEED_SOURCE_COMMIT="$GITHUB_SHA"
node --import tsx scripts/create-component-release.ts
npm run release:custody -- seal release-assets/release-evidence-v1.json release-assets
npm run release:custody -- verify release-assets/release-evidence-v1.json
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with: { name: "admin-candidate-${{ github.sha }}", path: release-assets/, if-no-files-found: error, retention-days: 30 }
promote:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-24.04
permissions: { actions: read, contents: write, id-token: write }
environment: ${{ contains(github.ref_name, '-') && 'staging' || 'production' }}
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with: { fetch-depth: 0 }
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with: { node-version: 24, registry-url: "https://registry.npmjs.org" }
- run: npm ci --ignore-scripts --workspaces=false --no-audit --no-fund
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with: { username: "${{ vars.DOCKERHUB_USERNAME }}", password: "${{ secrets.DOCKERHUB_TOKEN }}" }
- name: Download exact accepted candidate
env: { GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}" }
run: |
if [[ "$GITHUB_REF_NAME" == *-* ]]; then candidate_branch=staging; else candidate_branch=main; fi
test "$(git rev-parse HEAD)" = "$(git rev-parse "origin/${candidate_branch}")"
run_id="$(gh run list --workflow publish.yml --branch "$candidate_branch" --commit "$GITHUB_SHA" --status success --limit 1 --json databaseId --jq '.[0].databaseId')"
test -n "$run_id"; gh run download "$run_id" --name "admin-candidate-${GITHUB_SHA}" --dir candidate
npm run release:check-tag; npm run release:custody -- verify candidate/release-evidence-v1.json
- id: before
run: echo "latest=$(npm view @treeseed/admin dist-tags.latest)" >> "$GITHUB_OUTPUT"
- name: Publish exact npm tarball
run: npm run release:publish -- "$(find candidate -maxdepth 1 -name '*.tgz' -print -quit)"
env: { NODE_AUTH_TOKEN: "${{ secrets.NPM_TOKEN }}" }
- name: Promote exact image manifest
run: |
identity="$(node -e "const e=require('./candidate/release-evidence-v1.json'); process.stdout.write(e.artifacts.find(x=>x.kind==='oci-image').identity)")"
digest="${identity#*@}"; docker buildx imagetools create -t "treeseed/admin:${GITHUB_REF_NAME}" "$identity"
test "$(docker buildx imagetools inspect "treeseed/admin:${GITHUB_REF_NAME}" --format '{{json .Manifest}}' | jq -r '.digest')" = "$digest"
- name: Verify npm read-back and publish unchanged assets
env: { GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}", EXPECTED_LATEST: "${{ steps.before.outputs.latest }}" }
run: |
test "$(npm view @treeseed/admin dist-tags.latest)" = "$EXPECTED_LATEST"
flags=(); if [[ "$GITHUB_REF_NAME" == *-rc.* ]]; then flags+=(--prerelease); fi
gh release create "$GITHUB_REF_NAME" candidate/* --generate-notes --verify-tag "${flags[@]}"
22 changes: 20 additions & 2 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ name: Verify

on:
push:
branches:
- '**'
branches: [staging, main]
paths-ignore: ["docs/src/content/**"]
pull_request:
# Required verification must also run for ancestry-only reconciliation PRs.
workflow_dispatch:

jobs:
Expand All @@ -25,11 +26,28 @@ jobs:

- name: Install dependencies
timeout-minutes: 20
env:
TREESEED_SKIP_PACKAGE_PREPARE: "1"
run: npm run release:setup

- name: Download exact integrated UI package
uses: actions/download-artifact@v4
with:
repository: treeseed-ai/ui
run-id: 36729378278
name: ui-b0c9a2bdf1eed181950c1202a24ab3d9af012833
github-token: ${{ github.token }}
path: .treeseed/ci-ui

- name: Install exact integrated UI package
run: npm install --ignore-scripts --no-save --package-lock=false .treeseed/ci-ui/*.tgz

- name: Verify package
run: npm run verify:direct

- name: Verify independent Cloudflare application
run: npm run build:pages

- name: Pack verified artifact
run: mkdir -p artifacts && npm pack --json --ignore-scripts --pack-destination artifacts

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ npm-debug.log*
public/books/*.md
public/books/*.json
public/__treeseed/*.json
public/favicon.svg
.codex
**/.ts-run-*.mjs
.tmp-*/
31 changes: 31 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Admin workspace guidance

## CRITICAL: complete automated test coverage

Every behavior, contract, state transition, failure path, and edge case must have automated unit, integration, and scene/guarantee-based acceptance coverage. This is mandatory for all projects, especially the capacity-provider and agent system. A behavior without all three layers is an unresolved delivery gap, not completed work.

- Unit tests must prove exact outputs, validation, invariants, and boundary conditions. Cover valid and invalid inputs, missing/empty/malformed values, authorization denial, stale or moved refs, and every named prohibited field.
- Integration tests must exercise the real owning components and their public boundaries: handlers, provider/kernel execution, APIs, persistence, tools, and downstream consumers. Mocks, string assertions, compilation, or call-order checks alone are not integration proof.
- Coded scenes and guarantees must prove production-shaped end-to-end outcomes: exact governed artifacts and read-back, independent verification, actual usage, exactly-once settlement, and durable teardown. Use the project's existing native acceptance harness and respect package ownership; do not put TreeSeed-specific policy into product-neutral packages.
- Cover duplicate and concurrent execution, idempotency, partial failure, interruption, retry, resume, cancellation, expiry, provider/tool/subprocess errors, unsafe commands, and cleanup without residue. Preserve failed observations; do not fabricate dispositions, usage, citations, receipts, or passing replays.
- For every defect, first add a focused regression that reproduces the failure, then add or strengthen the corresponding integration and scene/guarantee cases. Fix the earliest owning contract. Retain previously covered behavior and all historical failed evidence.
- Never weaken assertions, remove negative cases, narrow acceptance criteria, disable type checks, extend deadlines, increase allowances, or relabel failures as passes to get green results. An unexpected agent timeout is a fatal architecture defect: agents must check authoritative remaining time frequently, reserve verification/closeout time, and produce authorized continuation proposals for unfinished work before the original deadline.
- Delivery requires passing evidence at all three layers on the exact candidate. Missing environments, credentials, skipped tests, or blocked layers remain explicitly unproven. Component passes, suite totals, line coverage, and process completion never substitute for full semantic acceptance.
- Before EVERY acceptance run (scene or guarantee), run ALL automated unit and integration tests for every participating project on the exact candidate. Focused regressions are additional checks, not substitutes for the complete suites. Failed, skipped, missing, empty, or inconclusive prerequisite coverage blocks acceptance; never launch a live campaign first and discover prerequisite failures afterward. Run the complete suites once per participating project per acceptance invocation, before any scene begins; do not reuse a previous invocation's passing receipt or omit tests to save time. Preserve exact command, candidate, run, and result evidence in the existing Issue and Actions artifacts.
- Keep the behavior-to-unit/integration/scene mapping and exact command, commit, run, and artifact evidence in the existing Issue body and Actions artifacts. Reproduce failures with cheap focused tests before another expensive activation or full campaign; batch known fixes, inspect failed jobs, and reuse only unchanged immutable evidence. No duplicate campaigns or new coverage side channels.

## Agent configuration and handler ownership

When this project defines or consumes agents, agent identity, task instructions, prompts, capabilities, permissions, parameters, and activity profiles must be governed YAML configuration. Adding or renaming an agent using existing handlers must not require provider, guest, kernel, or scheduler code changes. Do not hardcode named-role configuration in shared runtime code; shared rules must apply to any configured agent.

Task-specific executable code belongs in the configured handler. Reuse existing class-based handlers and exact profile bindings; new coded functionality may require a pinned handler, but not a parallel dispatch path or duplicated policy. Test arbitrary YAML-defined agents, renamed identities, handler selection, changed prompts/parameters, denied permissions, and unknown/duplicate handlers through unit, real integration, and coded acceptance cases.

Preserve the independent Admin package build and access-controlled project knowledge surfaces.

## Branch and deployment boundary

`main` is the only production branch and maps only to the `production` deployment environment. `staging` is the only development-integration branch and maps only to the `staging` deployment environment. Short-lived pull-request branches may validate without deploying, but they must never define another deployment environment. Do not create or use `development`, `preview`, `stable`, or any other GitHub deployment environment; preview deployments are prohibited. Release tags may promote an exact reviewed `staging` commit to `production` without creating another branch or environment. Artifact channel names must never become GitHub deployment environments.

## Project library

Use `trsd library show admin` and `status` before querying `treeseed-ai/admin-library`. Read root-level paths at an exact commit. Author only through governed library workspaces and reviews. Never recreate a library `src/content` tree or edit `.treeseed/data` directly.
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM node:22-bookworm-slim AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --ignore-scripts
COPY . .
ENV TREESEED_WEB_RUNTIME_TARGET=managed-node
RUN npm run build
RUN npm prune --omit=dev --ignore-scripts

FROM node:22-bookworm-slim AS runtime
WORKDIR /app
ENV NODE_ENV=production HOST=0.0.0.0 PORT=4322
COPY --from=build /app/.treeseed/app-dist ./app
COPY --from=build /app/node_modules ./node_modules
COPY --from=build /app/package.json ./package.json
EXPOSE 4322
CMD ["node", "./app/server/entry.mjs"]
Loading
Loading