Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b741ba2
CTW-37: add durable timer reference store
programming-pupil Sep 18, 2026
ea31bd4
CTW-37: add durable model and stream contracts
programming-pupil Sep 18, 2026
406e1ce
CTW-37: harden durable tool transitions
programming-pupil Sep 18, 2026
79426bb
CTW-37: enforce tool approval and effect fencing
programming-pupil Sep 19, 2026
b68aabe
CTW-37: add durable lifecycle state machines
programming-pupil Sep 19, 2026
3b56a64
CTW-37: use official OpenTelemetry SDK
programming-pupil Sep 19, 2026
ce29743
CTW-37: add fail-closed sandbox and secret boundaries
programming-pupil Sep 19, 2026
4c41ae3
CTW-37: secure context and extension boundaries
programming-pupil Sep 19, 2026
773a5f0
CTW-37: enforce durable data-egress policy
programming-pupil Sep 19, 2026
e56827d
CTW-37: bind verified runtime identities
programming-pupil Sep 19, 2026
3a74a4a
CTW-37: add durable human interaction state machine
programming-pupil Sep 19, 2026
6bd4d64
CTW-37: add durable timers and resource admission
programming-pupil Sep 19, 2026
bd8d863
CTW-37: add schema replay model retry and timer dispatch
programming-pupil Sep 19, 2026
f717601
CTW-37: persist model retry timers and stream diagnostics
programming-pupil Sep 19, 2026
c078072
CTW-37: add verified snapshot and blob storage ports
programming-pupil Sep 19, 2026
fa48f6d
CTW-37: complete MCP protocol and runtime boundary
programming-pupil Sep 19, 2026
8ef332b
CTW-37: add durable context skill eval artifact and projection contracts
programming-pupil Sep 19, 2026
e14503e
CTW-37: harden timers and tenant-scoped storage
programming-pupil Sep 20, 2026
f08b939
CTW-37: add durable projection store contracts
programming-pupil Sep 20, 2026
664edf9
CTW-37: add recoverable projection worker offsets
programming-pupil Sep 20, 2026
6e00c89
CTW-37: make projection batches atomic
programming-pupil Sep 20, 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
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Behavior and evidence

Describe the behavior changed, the durable boundary involved, and the recovery path after interruption. Link implementation, conformance, fault/security test and documentation evidence for each capability claimed. Mark any missing gate as unverified rather than stable.

## Review checklist

- [ ] Record each design source as `ADRO-origin`, `public-standard-derived` or `independent-design` and review public naming against the organization's private lexical policy.
- [ ] Check license and dependency changes; regenerate and verify the SBOM, notices and license copies when dependencies change.
- [ ] Run the applicable tests and report commands, results, and any skipped external infrastructure or credentials.
- [ ] Update `docs/rebuild/progress.md` and the 451-item ledger conservatively without closing an item before main-branch acceptance.
10 changes: 4 additions & 6 deletions .github/workflows/contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,13 @@ jobs:
- run: ./scripts/orchestration-guard.sh
- name: Enforce independent project identity
run: |
blocked_name="$(printf '%s%s' multi ca)"
blocked_acronym="$(printf '%s%s' a os)"
if git grep -I -n -i -E "${blocked_name}|(^|[^[:alnum:]_])${blocked_acronym}([^[:alnum:]_]|$)" -- ':!THIRD_PARTY_LICENSES/**'; then
echo 'References to unrelated delivery platforms are not allowed.' >&2
exit 1
fi
./scripts/test-public-identity.py
./scripts/verify-public-identity.py
- run: node scripts/check-html.mjs
- run: ruby scripts/openapi-contract.rb
- run: ruby scripts/coverage-ledger.rb --check
- run: ./scripts/verify-rebuild-ledger.py
- run: ./scripts/verify-threat-test-map.py
- run: ruby -e 'require "yaml"; require "json"; YAML.load_file("openapi/openapi.yaml"); YAML.load_file("deploy/compose/docker-compose.yml"); YAML.load_file("charts/adro/values.yaml"); JSON.parse(File.read("charts/adro/values.schema.json")); JSON.parse(File.read("release/dependencies.json")); JSON.parse(File.read("SBOM"))'
- run: bash -n examples/three-repo-feign/run.sh
- run: bash -n start.sh
Expand Down
12 changes: 11 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: test test-race vet build architecture fuzz-smoke store-conformance coverage-ledger contracts supply-chain fault-matrix browser postgres-conformance production-conformance real-e2e dsh-real real-evidence test-expert test-all verify run local
.PHONY: test test-race vet build architecture fuzz-smoke store-conformance coverage-ledger rebuild-ledger threat-map contracts supply-chain fault-matrix browser postgres-conformance production-conformance real-e2e dsh-real real-evidence test-expert test-all verify run local

GO ?= ./scripts/e2e-go.sh

Expand Down Expand Up @@ -26,6 +26,12 @@ store-conformance:
coverage-ledger:
ruby scripts/coverage-ledger.rb --check

rebuild-ledger:
./scripts/verify-rebuild-ledger.py

threat-map:
./scripts/verify-threat-test-map.py

contracts:
bash -n start.sh
bash -n scripts/lib/env-file.sh
Expand Down Expand Up @@ -60,6 +66,10 @@ contracts:
node scripts/check-html.mjs
ruby scripts/openapi-contract.rb
ruby scripts/coverage-ledger.rb --check
./scripts/verify-rebuild-ledger.py
./scripts/verify-threat-test-map.py
./scripts/test-public-identity.py
./scripts/verify-public-identity.py
ruby -rjson -e 'require "yaml"; YAML.load_file("openapi/openapi.yaml"); YAML.load_file("deploy/compose/docker-compose.yml"); YAML.load_file("charts/adro/Chart.yaml"); YAML.load_file("charts/adro/values.yaml"); JSON.parse(File.read("charts/adro/values.schema.json")); JSON.parse(File.read("release/dependencies.json")); JSON.parse(File.read("SBOM"))'
bash -n examples/three-repo-feign/run.sh

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ with a different value does not replace an existing password. For a local
profile where the password is unknown, stop ADRO, back up and remove its
`auth.json`, then start once with a new password of at least 10 characters.

Machine callers use short-lived, audience-bound service credentials; the old
shared `ADRO_API_TOKEN` setting is rejected. Initialize and issue credentials
with `adroctl service-credential`, then set `ADRO_SERVICE_CREDENTIAL_FILE`.
Rotation, revocation, file permissions, and failure semantics are documented in
`docs/operations/identity-and-service-credentials.md`.

Open `http://127.0.0.1:8081`. The API readiness endpoint is
`http://127.0.0.1:8080/readyz`.

Expand Down
5 changes: 5 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@ ADRO_ADMIN_PASSWORD='change-this-password' \
如果忘记了本地密码,请先停止 ADRO,备份并删除对应的 `auth.json`,再使用至少
10 个字符的新密码启动一次。

机器调用方使用绑定 audience 的短期服务凭据;旧的共享 `ADRO_API_TOKEN` 配置会
被拒绝。使用 `adroctl service-credential` 初始化、签发、轮换和撤销凭据,并设置
`ADRO_SERVICE_CREDENTIAL_FILE`。完整运维与失败语义见
`docs/operations/identity-and-service-credentials.md`。

启动后访问 `http://127.0.0.1:8081`,API 就绪检查为
`http://127.0.0.1:8080/readyz`。

Expand Down
Loading
Loading