didericis-claude
794e4e662d
docs: defer broker replay protection to its own issue ( #494 )
...
prd-number-check / require-numbered-prds (pull_request) Failing after 7s
tracker-policy-pr / check-pr (pull_request) Successful in 10s
refresh-image-locks / refresh (push) Successful in 30s
lint / lint (push) Successful in 1m6s
Per PR review, replay protection is too heavy for the host control
server MVP. Drop it from the four-gap framing (now three gaps), remove
the enforcement design section and implementation chunk, and track the
iat-window + jti-cache work in #494 as an independent in-process change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 22:35:13 +00:00
didericis-claude
f2fe1f9b2d
docs: PRD for host-side control server ( #468 )
...
Promote the in-process launch broker into a standalone host control
server: the single privileged host component that brokers launches, owns
orchestrator lifecycle, and is the sole writer of host-durable state.
Closes the four broker gaps (transport, durable provisioned secret,
replay protection, disciplined op vocabulary) and splits host state by
owner and lifetime (orchestrator SQLite / host JSONL audit / gateway
none). The payoff is dropping the Docker socket from the CLI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 22:35:13 +00:00
didericis-claude
85fb6b0c98
fix(docker): disable IPv6 on the gateway network
...
test / coverage (push) Blocked by required conditions
test / unit (push) Successful in 55s
lint / lint (push) Successful in 1m5s
test / image-input-builds (push) Successful in 1m8s
test / integration-docker (push) Has been cancelled
Update Quality Badges / update-badges (push) Failing after 10m53s
On a docker daemon that default-enables IPv6 (default-address-pools),
creating the gateway network with only `--subnet` lets the daemon also
attach an fdd0::/64 IPv6 subnet. Its gateway is stored as `::1/64`,
which trips docker's own netip.ParseAddr in `network inspect`/`ls`:
ParseAddr("fdd0:0:0:6::1/64"): unexpected character, want colon
That poisons every `_network_cidr`/`network ls` read and fails the
docker integration suite intermittently (whichever run the runner's
IPv6 pool index lands on a broken network). bot-bottle attribution
pins IPv4 source IPs and has no IPv6 support, so pass `--ipv6=false`
explicitly at network create to keep the gateway network IPv4-only
regardless of the daemon default.
Note: an already-poisoned runner still needs a one-time
`docker network rm bot-bottle-gateway` (and possibly a daemon
restart) to clear the malformed network.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 18:33:48 -04:00
didericis-codex
902286dbc0
fix(build): key nested images by base content
refresh-image-locks / refresh (push) Successful in 36s
lint / lint (push) Successful in 1m2s
test / image-input-builds (push) Successful in 1m6s
test / integration-docker (push) Successful in 1m12s
Update Quality Badges / update-badges (push) Successful in 56s
test / unit (push) Successful in 2m19s
test / coverage (push) Successful in 15s
2026-07-26 17:30:36 -04:00
didericis-codex
73c566f3ff
fix(build): close remaining mutable image inputs
2026-07-26 17:30:36 -04:00
didericis-codex
33b7bcd082
build: centralize pinned base image arguments
2026-07-26 17:30:36 -04:00
didericis-codex
9e83ff1992
test: cover image input policy failure paths
2026-07-26 17:30:36 -04:00
didericis-codex
1d10595e5c
build: make pinned image inputs portable
2026-07-26 17:30:36 -04:00
didericis-codex
364cad7e56
ci: isolate gateway lock refresh tooling
2026-07-26 17:30:36 -04:00
didericis-codex
ff355f81de
test: narrow pinned base match for type checking
2026-07-26 17:30:36 -04:00
didericis-codex
cf97a49eac
ci: pin compatible gateway lock tooling
2026-07-26 17:30:36 -04:00
didericis-codex
e607af73ab
test: assert reproducible provider image inputs
2026-07-26 17:30:36 -04:00
didericis-codex
998b7c5dd7
ci: make image input refreshes deterministic
2026-07-26 17:30:36 -04:00
didericis-codex
9a4899d4e1
docs: explain image input refreshes
2026-07-26 17:30:36 -04:00
didericis-codex
5083b45f42
ci: reject mutable image build inputs
2026-07-26 17:30:36 -04:00
didericis-codex
24aeba9676
build: freeze operating system package inputs
2026-07-26 17:30:36 -04:00
Gitea Actions
ff36b73ff1
build: refresh image input locks
2026-07-26 17:30:36 -04:00
didericis-codex
10d295eaf6
build: pin and verify image inputs
2026-07-26 17:30:36 -04:00
Gitea Actions
69c4c85cd5
build: refresh image input locks
2026-07-26 17:30:36 -04:00
didericis-codex
52e1249c2f
ci: keep feature-branch image locks current
2026-07-26 17:30:36 -04:00
didericis-codex
bd4f384038
ci: generate refreshed image input locks
2026-07-26 17:30:36 -04:00
didericis-codex
0500e71383
build: declare reproducible image dependencies
2026-07-26 17:30:36 -04:00
didericis-claude
72165b5db5
fix(git-gate): reject AGit review refs in pre-receive
...
tracker-policy-pr / check-pr (pull_request) Successful in 12s
test / unit (pull_request) Successful in 54s
test / integration-docker (pull_request) Successful in 1m9s
test / coverage (pull_request) Successful in 17s
prd-number-check / require-numbered-prds (pull_request) Successful in 8s
test / unit (push) Successful in 54s
Update Quality Badges / update-badges (push) Successful in 54s
lint / lint (push) Successful in 1m4s
test / integration-docker (push) Successful in 1m9s
test / coverage (push) Successful in 38s
Gitea AGit accepts pushes to refs/for/*, refs/draft/*, and
refs/for-review/* and opens pull requests backed by server-managed
refs/pull/<n>/head refs rather than ordinary refs/heads/* branches.
That breaks the git-gate branch workflow: follow-up commits can't be
pushed back through the branch, and Gitea rejects later direct updates
to the generated review ref, so recovery means recreating the PR.
Add a Phase 0 guard to the shared pre-receive hook that rejects
creation or update of those AGit review refs before any gitleaks scan
or upstream forward, with a message pointing callers at the
branch-backed PR workflow. Deletions (new == zero) stay allowed so
legacy AGit refs can still be cleaned up; normal branches and tags are
untouched.
Closes #506
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 17:59:21 +00:00
didericis-claude
0edd46d56d
chore(ci): only run PRD number check for PRs into main
...
prd-number-check / require-numbered-prds (pull_request) Successful in 5s
tracker-policy-pr / check-pr (pull_request) Successful in 12s
The require-numbered-prds gate previously ran on every pull request.
Scope its trigger to PRs whose base branch is main, so numbering is
only enforced at the point of merging into main.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 17:19:36 +00:00
Quality Badge Bot
4682dd441f
chore: update quality badges
...
- Coverage: 84%
- Core coverage: 94%
[skip ci]
2026-07-26 17:06:23 +00:00
didericis-codex
1827593b89
test(docker): authenticate multitenant egress probes
prd-number-check / require-numbered-prds (pull_request) Successful in 9s
test / unit (pull_request) Successful in 53s
test / integration-docker (pull_request) Successful in 1m7s
test / coverage (pull_request) Successful in 17s
tracker-policy-pr / check-pr (pull_request) Successful in 32s
test / unit (push) Successful in 57s
lint / lint (push) Successful in 1m4s
test / integration-docker (push) Successful in 1m11s
test / coverage (push) Successful in 21s
Update Quality Badges / update-badges (push) Successful in 56s
2026-07-26 08:41:00 +00:00
didericis-codex
73e70e326c
test(docker): wait for multitenant probe readiness
prd-number-check / require-numbered-prds (pull_request) Successful in 6s
tracker-policy-pr / check-pr (pull_request) Successful in 26s
test / unit (pull_request) Successful in 49s
lint / lint (push) Successful in 59s
test / integration-docker (pull_request) Failing after 1m1s
test / coverage (pull_request) Has been skipped
2026-07-26 08:38:16 +00:00
didericis-codex
d744bec7b1
fix(docker): configure the attributed gateway subnet
tracker-policy-pr / check-pr (pull_request) Successful in 12s
prd-number-check / require-numbered-prds (pull_request) Successful in 42s
lint / lint (push) Successful in 1m4s
test / unit (pull_request) Successful in 57s
test / integration-docker (pull_request) Failing after 1m5s
test / coverage (pull_request) Has been skipped
2026-07-26 08:35:37 +00:00
didericis-codex
f3fbfb3cc3
fix(ci): join control planes to the runner network
prd-number-check / require-numbered-prds (pull_request) Successful in 13s
tracker-policy-pr / check-pr (pull_request) Successful in 8s
test / integration-docker (pull_request) Failing after 35s
test / unit (pull_request) Successful in 52s
test / coverage (pull_request) Has been skipped
lint / lint (push) Successful in 1m7s
2026-07-26 08:30:57 +00:00
didericis-codex
b2245ae1f3
test(orchestrator): make wrong-key coverage deterministic
2026-07-26 08:30:57 +00:00
didericis-codex
f0fe33b1d0
fix(ci): bypass proxies for Docker host probes
prd-number-check / require-numbered-prds (pull_request) Successful in 6s
tracker-policy-pr / check-pr (pull_request) Successful in 7s
test / unit (pull_request) Failing after 45s
test / integration-docker (pull_request) Failing after 7m1s
test / coverage (pull_request) Has been skipped
2026-07-26 08:24:21 +00:00
didericis-codex
d4889663d1
fix(ci): enable the scheduled canary suite
prd-number-check / require-numbered-prds (pull_request) Successful in 9s
tracker-policy-pr / check-pr (pull_request) Successful in 9s
test / unit (pull_request) Successful in 50s
test / integration-docker (pull_request) Failing after 7m45s
test / coverage (pull_request) Has been skipped
2026-07-26 08:15:21 +00:00
didericis-codex
1022247ce5
test(ci): cover assurance gate entry points
prd-number-check / require-numbered-prds (pull_request) Successful in 7s
tracker-policy-pr / check-pr (pull_request) Successful in 8s
lint / lint (push) Successful in 58s
test / unit (pull_request) Successful in 48s
test / integration-docker (pull_request) Failing after 19m28s
test / coverage (pull_request) Has been skipped
2026-07-26 08:14:00 +00:00
didericis-codex
671d91070e
docs(ci): document the assurance topology
2026-07-26 08:02:12 +00:00
didericis-codex
1c6d30ffd8
test(canary): verify the pinned gitleaks release
2026-07-26 08:01:07 +00:00
didericis-codex
583ff98b27
ci(docker): require the full integration suite
2026-07-26 08:00:15 +00:00
didericis-codex
fafb828bb7
ci(coverage): enforce the critical core contract
2026-07-26 07:50:44 +00:00
Quality Badge Bot
f9ad6c85aa
chore: update quality badges
...
- Coverage: 83%
- Core coverage: 93%
[skip ci]
2026-07-26 07:38:37 +00:00
didericis-codex
7488110e71
chore: tighten upkeep boundaries and static checks
prd-number-check / require-numbered-prds (pull_request) Successful in 8s
test / integration-docker (pull_request) Successful in 12s
test / unit (pull_request) Successful in 49s
test / coverage (pull_request) Successful in 15s
tracker-policy-pr / check-pr (pull_request) Successful in 5s
test / integration-docker (push) Successful in 13s
test / unit (push) Successful in 48s
lint / lint (push) Successful in 56s
Update Quality Badges / update-badges (push) Successful in 50s
test / coverage (push) Successful in 13s
2026-07-26 06:55:49 +00:00
didericis-codex
22dde95561
fix(diagnostics): make optional failures observable and safe
2026-07-26 06:55:49 +00:00
didericis-codex
e29b79d517
refactor(backend): extract shared bottle preparation planner
2026-07-26 06:55:49 +00:00
didericis-codex
1d85acfd99
refactor(egress): make addon core a compatibility facade
2026-07-26 06:55:49 +00:00
didericis-codex
90defdc9cd
refactor(egress): separate matching, DLP, and context concerns
2026-07-26 06:55:49 +00:00
didericis-codex
2039ef635f
refactor: validate reconciliation inputs and neutralize CLI helpers
2026-07-26 06:55:49 +00:00
didericis-codex
0fc5457e41
docs(adr): align tracker policy title
test / integration-docker (push) Successful in 17s
test / unit (push) Successful in 48s
lint / lint (push) Successful in 59s
test / coverage (push) Successful in 16s
Update Quality Badges / update-badges (push) Successful in 4m4s
2026-07-26 02:54:56 -04:00
didericis-codex
c0493f0b01
ci(tracker): require one metadata owner per pull request
2026-07-26 02:54:56 -04:00
didericis-codex
5828f5e900
ci(tracker): allow labelled standalone pull requests
2026-07-26 02:54:56 -04:00
didericis-codex
be025ff8fb
docs(prd): explain superseded dashboard designs
2026-07-26 02:54:56 -04:00
didericis-codex
9537c96586
docs: streamline design workflow guidance
2026-07-26 02:54:56 -04:00
didericis-codex
6b43fe73c1
docs: add design workflow guide
2026-07-26 02:54:56 -04:00