Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
7758d5b
docs(specs): add 018 v0.3 release readiness implementation plan
Sep 23, 2026
410838b
docs(specs): record 018 maintainer decisions OD-005..OD-008
Sep 23, 2026
633951b
docs(specs): resolve 018 OD-009 audit chain recovery
Sep 23, 2026
98b6779
docs(specs): add 018 v0.3 release readiness task list
Sep 23, 2026
c2b9380
docs(specs): 018 v0.3.0 release criteria RC-01..RC-08 (T005)
Sep 23, 2026
0340f8d
docs(specs): 018 audit skeleton, snapshot tools, module categories, k…
Sep 23, 2026
62da3a1
docs(specs): 018 inventory drafts, procedures, review evidence, OD-01…
Sep 24, 2026
213bdaa
docs(specs): 018 OD-019 hold unfixed security findings off-git
Sep 24, 2026
60a54bc
docs(specs): 018 findings F-001..F-255, component reviews, procedures…
Sep 24, 2026
eda9ee4
docs(specs): 018 fix plan (T050) and OD-024 sign-off request
Sep 24, 2026
79a1cfa
docs(specs): 018 note the T046 attempt and hand-off
Sep 24, 2026
8e8ce03
docs(specs): 018 record OD-022..OD-025 decisions
Sep 24, 2026
59b5b6a
docs(specs): 018 F-026/F-030/F-043 fixed-unverified after #420/#421/#423
Sep 24, 2026
e42ed2c
docs(specs): 018 F-029 fixed-unverified; RC-TAG-1 target c44cb179
Sep 24, 2026
a5797a2
docs(specs): 018 F-212/F-251 fixing (#425, #426); OD-026 playit address
Sep 24, 2026
559aa2e
docs(specs): 018 full hand-off in RESTART.md; RC-TAG-1 tagged
Sep 24, 2026
532b526
docs(specs): 018 fix PRs #428/#429; hand-off for groups 2 and 5
Sep 24, 2026
12c1f39
docs(specs): 018 hand-off lists open hardening PRs
Sep 24, 2026
34e9c8a
docs(specs): 018 hand-off: current focus is the held security fixes
Sep 24, 2026
8d5ef00
docs(specs): 018 full RESTART rewrite; F-212/F-251 fixed-unverified
Sep 24, 2026
29e6fdc
docs(specs): 018 rewrite RESTART.md as a complete hand-off
Sep 24, 2026
3eec417
docs(specs): 018 rc.1 release run timed out twice (operator image)
Sep 24, 2026
283f98f
docs(specs): 018 F-257 release image job timeout (fixing, #435)
claude Sep 24, 2026
0c32dcf
docs(specs): 018 wave-1 fixes in flight; F-258 Module status churn
claude Sep 24, 2026
5d5429b
docs(specs): 018 F-215 fixed-unverified (#432 merged)
claude Sep 24, 2026
08a5eff
docs(specs): 018 F-257 fixed-unverified (#435 merged)
claude Sep 24, 2026
5c6075d
docs(specs): 018 F-121 fixed-unverified (#438 merged)
claude Sep 24, 2026
2319044
docs(specs): 018 session-4 hand-off in RESTART.md
claude Sep 24, 2026
3990fa1
docs(specs): 018 apply OD-021/OD-026 resolutions and fixing statuses
claude Sep 24, 2026
2319731
docs(specs): 018 RESTART.md session-5 live state
claude Sep 24, 2026
1ca4b94
docs(specs): 018 F-105/F-106 fixing (#448)
claude Sep 24, 2026
22eb81f
docs(specs): 018 RESTART.md group-18 PR state
claude Sep 24, 2026
31a8589
docs(specs): 018 RESTART.md #440/#441/#447 state
claude Sep 24, 2026
a4276eb
docs(specs): 018 RESTART.md #444/#445 green, #448 fix
claude Sep 24, 2026
d0b9958
docs(specs): 018 RESTART.md #427 green
claude Sep 24, 2026
c8efeb5
docs(specs): 018 RESTART.md #446 green
claude Sep 25, 2026
df0ea33
docs(specs): 018 RESTART.md #440 green
claude Sep 25, 2026
9051251
docs(specs): 018 RESTART.md #443 green, capture race
claude Sep 25, 2026
76a7c1a
docs(specs): 018 F-259 capture download race (#449)
claude Sep 25, 2026
dbe4fac
docs(specs): 018 RESTART.md #447 green
claude Sep 25, 2026
62af97d
docs(specs): 018 RESTART.md #448 green
claude Sep 25, 2026
eebfb0e
docs(specs): 018 RESTART.md #441 green
claude Sep 25, 2026
0c4e0ef
docs(specs): 018 RESTART.md #430 conflict resolved
claude Sep 25, 2026
deca6fd
docs(specs): 018 RESTART.md #449 green
claude Sep 25, 2026
c666994
docs(specs): 018 RESTART.md all open PRs green
claude Sep 25, 2026
0931c6c
docs(specs): 018 RESTART.md #427 merged
claude Sep 25, 2026
2182e4e
docs(specs): 018 F-052/F-172/F-173 fixed-unverified (#428 merged)
claude Sep 25, 2026
401aff2
docs(specs): 018 RESTART.md #430 re-merged
claude Sep 25, 2026
bfaadf6
docs(specs): 018 F-116/F-130 fixed-unverified (#429 merged)
claude Sep 25, 2026
bdd5e18
docs(specs): 018 #436 merged, findings fixed-unverified
claude Sep 25, 2026
932c9f4
docs(specs): 018 #437 merged, findings fixed-unverified
claude Sep 25, 2026
29f32fb
docs(specs): 018 #439 merged, findings fixed-unverified
claude Sep 25, 2026
8f3da2f
docs(specs): 018 #433 merged, findings fixed-unverified
claude Sep 25, 2026
8623085
docs(specs): 018 record session-5 maintainer decisions
claude Sep 25, 2026
998a389
docs(specs): 018 #440 merged, findings fixed-unverified
claude Sep 25, 2026
087fe4a
docs(specs): 018 #441 merged, findings fixed-unverified
claude Sep 25, 2026
c64661d
docs(specs): 018 #443 merged, findings fixed-unverified
claude Sep 25, 2026
3f49083
docs(specs): 018 #444 merged, findings fixed-unverified
claude Sep 25, 2026
f6ea4cc
docs(specs): 018 #445 merged, findings fixed-unverified
claude Sep 25, 2026
b77c304
docs(specs): 018 #446 merged, findings fixed-unverified
claude Sep 25, 2026
a30fa32
docs(specs): 018 #447 merged, findings fixed-unverified
claude Sep 25, 2026
04c8c6b
docs(specs): 018 #448 merged, findings fixed-unverified
claude Sep 25, 2026
bd91fbf
docs(specs): 018 #449 merged, findings fixed-unverified
claude Sep 25, 2026
116d6e3
docs(specs): 018 file F-260 (dead GameServer/Restore phases), record …
claude Sep 25, 2026
8b2ea81
docs(specs): 018 session-5 scout briefs (fix-group waves, OD-021 foll…
claude Sep 25, 2026
1130ac9
docs(specs): 018 RESTART.md #430 green
claude Sep 25, 2026
3b04dc9
docs(specs): 018 RESTART.md wave-1 PR state
claude Sep 25, 2026
7585cdc
docs(specs): 018 RESTART.md CI state (coverage gate, master CRD stamp)
claude Sep 25, 2026
e618d00
docs(specs): 018 RESTART.md session-5 PR state refresh
claude Sep 25, 2026
d675c78
docs(specs): 018 RESTART.md mark #450 and #455 green
claude Sep 25, 2026
125a729
docs(specs): 018 record #430 and #450-#455 merges, session-6 restart …
claude Sep 26, 2026
c18a943
docs(specs): 018 RESTART.md session-6 decisions and in-flight workflow
claude Sep 26, 2026
49731d9
docs(specs): 018 RESTART.md wave-2 PRs, group 27 and agent coverage s…
claude Sep 26, 2026
c702cdd
docs(specs): 018 RESTART.md record #475 and #476
claude Sep 26, 2026
2067342
docs(specs): 018 #464 merged, F-081 fixed-unverified
claude Sep 26, 2026
c0aed63
docs(specs): 018 #465 merged, findings fixed-unverified
claude Sep 26, 2026
ff0e74c
docs(specs): 018 F-181 closed-already-fixed by #446
claude Sep 26, 2026
21c862e
docs(specs): 018 #467 merged, findings fixed-unverified
claude Sep 26, 2026
1b18fff
docs(specs): 018 #468 merged, findings fixed-unverified
claude Sep 26, 2026
3a3128c
docs(specs): 018 #470 merged, findings fixed-unverified
claude Sep 26, 2026
8555af4
docs(specs): 018 #475 merged, findings fixed-unverified
claude Sep 26, 2026
bd13b32
docs(specs): 018 #476 merged, findings fixed-unverified
claude Sep 26, 2026
6ab5230
docs(specs): 018 RESTART.md wave 3 in flight
claude Sep 26, 2026
3632060
docs(specs): 018 wave-3 PRs, group-37 residual notes, CodeRabbit prac…
claude Sep 26, 2026
b624e23
docs(specs): 018 #460 merged, findings fixed-unverified
claude Sep 26, 2026
cc7813f
docs(specs): 018 #477 merged, findings fixed-unverified
claude Sep 26, 2026
6c997f7
docs(specs): 018 #466 merged, findings fixed-unverified
claude Sep 26, 2026
842212d
docs(specs): 018 #478 merged, findings fixed-unverified
claude Sep 26, 2026
a812df2
docs(specs): 018 #479 merged, findings fixed-unverified
claude Sep 26, 2026
f33a14c
docs(specs): 018 F-138 partly fixed by #480
claude Sep 26, 2026
1c85785
docs(specs): 018 #480 merged, findings fixed-unverified
claude Sep 26, 2026
f0f495b
docs(specs): 018 #481 merged, findings fixed-unverified
claude Sep 26, 2026
2cac332
docs(specs): 018 #482 merged, findings fixed-unverified
claude Sep 26, 2026
0acbc2f
docs(specs): 018 #483 merged, findings fixed-unverified
claude Sep 26, 2026
d34bcbe
docs(specs): 018 RESTART.md wave 3 merged, next waves
claude Sep 26, 2026
c90ac32
docs(specs): 018 file F-261/F-262, record F-138 sign-off
claude Sep 26, 2026
c51ef3d
docs(specs): 018 RESTART.md wave 4 in flight
claude Sep 26, 2026
e877a56
docs(specs): 018 RESTART.md wave-4 PRs
claude Sep 26, 2026
0db07fa
docs(specs): 018 RESTART.md refresh open PRs and next steps
claude Sep 26, 2026
3c892a4
docs(specs): 018 #485 merged, findings fixed-unverified
claude Sep 26, 2026
342d46a
docs(specs): 018 RESTART.md session 7, wave 5 in flight
claude Sep 26, 2026
1c510c3
docs(specs): 018 #490 merged, findings fixed-unverified
claude Sep 26, 2026
84de404
docs(specs): 018 #488 merged, findings fixed-unverified
claude Sep 26, 2026
0a9568f
docs(specs): 018 RESTART.md open PR list after #488/#490
claude Sep 26, 2026
b3ad3d1
docs(specs): 018 plan.md Go version matches go.work (F-253)
claude Sep 26, 2026
8ac1804
docs(specs): 018 #486 merged, findings fixed-unverified
claude Sep 26, 2026
0afc451
docs(specs): 018 RESTART.md open PR list after #486
claude Sep 26, 2026
4988cea
docs(specs): 018 #489 merged, findings fixed-unverified
claude Sep 26, 2026
2828b6d
docs(specs): 018 RESTART.md open PR list after #489
claude Sep 26, 2026
08ff8c1
docs(specs): 018 #487 merged, findings fixed-unverified
claude Sep 26, 2026
c675109
docs(specs): 018 RESTART.md wave 4 fully merged
claude Sep 26, 2026
891feee
docs(specs): 018 RESTART.md wave-5 PRs
claude Sep 26, 2026
5d2a0d5
docs(specs): 018 #485 merged, findings fixed-unverified
claude Sep 26, 2026
10907e9
docs(specs): 018 #490 merged, findings fixed-unverified
claude Sep 26, 2026
de747c6
docs(specs): 018 #487 merged, findings fixed-unverified
claude Sep 26, 2026
4c95a56
docs(specs): 018 #486 merged, findings fixed-unverified
claude Sep 26, 2026
8bdb691
docs(specs): 018 #489 merged, findings fixed-unverified
claude Sep 26, 2026
6d228d1
docs(specs): 018 #488 merged, findings fixed-unverified
claude Sep 26, 2026
fa9f6ce
docs(specs): 018 RESTART.md drop duplicate wave-4 merge lines
claude Sep 26, 2026
7a225d1
docs(specs): 018 #491 merged, findings fixed-unverified
claude Sep 27, 2026
eb8b2be
docs(specs): 018 RESTART.md drop #491 from open list
claude Sep 27, 2026
9e4db9f
docs(specs): 018 RESTART.md fix #491 merge date
claude Sep 27, 2026
585edd1
docs(specs): 018 #492 merged, findings fixed-unverified
claude Sep 27, 2026
96de61a
docs(specs): 018 #493 merged, findings fixed-unverified
claude Sep 27, 2026
dde10a0
docs(specs): 018 RESTART.md drop #492 and #493 from open list
claude Sep 27, 2026
9d7cae1
docs(specs): 018 #494 merged, findings fixed-unverified
claude Sep 27, 2026
8fd3351
docs(specs): 018 RESTART.md wave 5 fully merged
claude Sep 27, 2026
0aed405
docs(specs): 018 RESTART.md note #495
claude Sep 27, 2026
dc8a391
docs(specs): 018 RESTART.md #495 merged
claude Sep 27, 2026
f42f466
docs(specs): 018 log RC-TAG-2 pending (#496)
claude Sep 27, 2026
f194357
docs(specs): 018 apply OD-021 resolutions to the audit procedures
claude Sep 27, 2026
70ca3e4
Merge origin/master into 018-v0-3-release-readiness
claude Sep 27, 2026
cf2b6c1
docs(specs): 018 OD-021 procedures, second review round fixes
claude Sep 27, 2026
6590737
docs(specs): 018 OD-021 procedures, facts re-checked against master
claude Sep 27, 2026
15f7660
docs(specs): 018 web.md cites the roadmap entry for OD-021 item 13 (#…
claude Sep 27, 2026
f2c0ea9
docs(specs): 018 file F-263 (Servers page lists only gameplane-games)
claude Sep 27, 2026
17d0ac4
docs(specs): 018 web.md cites F-263
claude Sep 27, 2026
4caf639
docs(specs): 018 RESTART and OD-021 follow-up decisions (session 7)
claude Sep 27, 2026
df765ef
docs(specs): 018 RESTART.md #497 merged, #498 open
claude Sep 27, 2026
4a55d20
docs(specs): 018 #498 merged, findings fixed-unverified
claude Sep 27, 2026
6fa1b38
docs(specs): 018 RESTART.md #498 merged
claude Sep 27, 2026
47c41a0
docs(specs): 018 servers-filter-by-namespace unblocked by #498
claude Sep 27, 2026
ad640c4
docs(specs): 018 rc.2 also waits for #502-#517
claude Sep 27, 2026
521ca59
docs: address greptile and qodo review on the 018 audit procedures
ValgulNecron Sep 28, 2026
60ae6a3
docs: fix the 018 audit procedure review findings (round 2)
ValgulNecron Sep 28, 2026
f041fa6
docs: close the remaining 018 audit review findings (round 3)
ValgulNecron Sep 28, 2026
8249db8
docs(specs): publish 018 held audit records
ValgulNecron Sep 29, 2026
11706d6
docs(specs): record the 018 held-records publication under OD-019
ValgulNecron Sep 29, 2026
f89f703
chore: merge master into 018-v0-3-release-readiness
claude Oct 4, 2026
1cd82d3
docs(specs): tick spec-018 tasks already done on the record
claude Oct 4, 2026
0af11e6
docs(specs): 018 rc.1 release record, status-wording re-check, last c…
claude Oct 4, 2026
332f5ae
docs(specs): 018 move fixed held findings into findings.md, withdraw …
claude Oct 4, 2026
ac155c7
docs(specs): 018 record F-271/F-272 now that #545 merged
claude Oct 4, 2026
95156bc
chore: merge master into 018-v0-3-release-readiness
claude Oct 4, 2026
29e2fd4
chore: merge master into 018-v0-3-release-readiness
claude Oct 5, 2026
ec82d22
chore: merge master into 018-v0-3-release-readiness
claude Oct 5, 2026
3d2ddbf
docs(specs): 018 record the 2026-10-04 kubelab live sweep
claude Oct 5, 2026
ecc2e1f
docs(specs): 018 count the live sweep as the live round (OD-029)
claude Oct 5, 2026
57841bf
docs(specs): 018 OD-027 resolved, Job limits become Helm values (#573)
claude Oct 5, 2026
f586860
chore: merge master into 018-v0-3-release-readiness
claude Oct 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
*.out
*.prof
coverage.*
# Audit component-review coverage table (spec 018 contracts/audit-records.md), not test coverage output
!specs/*/audit/coverage.md
# Spec 018 OD-019: unfixed security findings stay off GitHub until their fix merges
specs/*/audit/held/
coverage/
vendor/
operator/bin/
Expand Down Expand Up @@ -70,4 +74,6 @@ system.md
design.pen.bak
heroUI template.pen

**/held
**/held
# 018 held audit records are published once every held fix has a pull request.
!specs/018-v0-3-release-readiness/audit/held
351 changes: 350 additions & 1 deletion specs/018-v0-3-release-readiness/OPEN-DECISIONS.md

Large diffs are not rendered by default.

178 changes: 178 additions & 0 deletions specs/018-v0-3-release-readiness/RESTART.md

Large diffs are not rendered by default.

95 changes: 95 additions & 0 deletions specs/018-v0-3-release-readiness/audit/conventions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Conventions (shared by every procedures file)

## Cluster

Export the kubelab kubeconfig:
```sh
export KUBECONFIG=~/kubelab.yaml
```

The Gameplane release is in namespace `gameplane-system`, named `gameplane`. Game servers are in namespace `gameplane-games`.

## Reaching the API

Per OD-016, the ingress host `gameplane.local` is not used: it does not resolve from the audit devbox. Run:
```sh
kubectl port-forward -n gameplane-system svc/gameplane-web 18080:80
```

Use `GP=http://127.0.0.1:18080` for all API requests. The ingress sends `/` to `gameplane-web`, which serves the dashboard and proxies API paths to `gameplane-api`.

## Sessions

Create a session with a POST to `$GP/auth/login`:
```sh
curl -s -D headers.txt -H "Content-Type: application/json" \
-d '{"username":"audit018-admin","password":"<password>"}' \
Comment thread
ValgulNecron marked this conversation as resolved.
$GP/auth/login
```

The response sets `gameplane_session` and `gameplane_csrf` cookies (both `HttpOnly` and `Secure`). Capture them:
```sh
grep -i "^set-cookie:" headers.txt | grep gameplane_session > ~/gameplane-audit-018/session-<role>.txt
grep -i "^set-cookie:" headers.txt | grep gameplane_csrf >> ~/gameplane-audit-018/session-<role>.txt
chmod 600 ~/gameplane-audit-018/session-<role>.txt
rm headers.txt
```

Over plain HTTP, `curl` drops `Secure` cookies. Instead, extract and send them back:
```sh
SESS=$(grep gameplane_session ~/gameplane-audit-018/session-<role>.txt | cut -d'=' -f2 | cut -d';' -f1)
CSRF=$(grep gameplane_csrf ~/gameplane-audit-018/session-<role>.txt | cut -d'=' -f2 | cut -d';' -f1)
curl -H "Cookie: gameplane_session=$SESS; gameplane_csrf=$CSRF" \
-H "X-Gameplane-CSRF: $CSRF" \
$GP/api/path
```

Every mutating request also includes `-H "X-Gameplane-CSRF: <gameplane_csrf value>"`.

## Accounts

One session per role per round:
- `audit018-admin`: full access
- `audit018-operator`: operator access
- `audit018-viewer`: read-only access
- `audit018-collab`: collaborator access (when needed)

Admin access follows OD-015: `audit018-admin` is created with `kubectl exec -n gameplane-system deploy/gameplane-api -- /api bootstrap-admin --username audit018-admin` (the image's entrypoint is `/api`, see `api/Dockerfile`), and its password is kept in `~/gameplane-audit-018/admin.env` (mode 600, off-git). The other role accounts are created through the API as that admin.

## Login budget

Rate limits per cluster:
- IP burst 10 (5/min)
- User burst 6 (3/min)

Each procedure states its login cost. Procedures that spend the budget on purpose (brute force, throttling tests) are marked **deferred to T031** and run last.

## Naming and isolation

Every created object is named `audit018-<purpose>[-n]`, within Kubernetes' 63-character label limit.

Objects created with `kubectl` also carry the label `gameplane.io/audit: "018"`. Put it in the manifest's `metadata.labels`, or add it right after creating the object (`-l` on `kubectl apply` is a selector filter: it adds no label):
```sh
kubectl apply -f <file> -n gameplane-games
kubectl label -f <file> -n gameplane-games gameplane.io/audit=018
```

Pre-existing objects are **never** written to. This covers:
- GameServers: `mc-fabric`, `soak-bogus-pool`, `soak-no-preference`, `soak-pool-west`, `squad`
- ModuleSources: `default`, `uploads`

A procedure that needs an existing object creates its own `audit018-` copy first.

## Evidence

Save all evidence under `audit/evidence/<INV-ID>/`, redacted:
- Share tokens as `<token>` (not the actual token)
- No cookies, CSRF values, passwords or secrets
- Each file stays under 1 MB

Evidence of a security boundary or control that does not hold is a security finding. It goes to `audit/held/evidence/<ID>/` (git-ignored) instead, until the fix merges (OD-019).

## Automatable?

Each procedure states `yes` or `no`. For `yes`, propose a bucket from `test/e2e/buckets.sh`:
- `operator`, `api-auth`, `api-roles`, `api-rbac`, `api-agent`, `api-mods`, `ratelimit`, `bot-fast`, `bot-heavy`, `multicluster`, `upgrade`
33 changes: 33 additions & 0 deletions specs/018-v0-3-release-readiness/audit/coverage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Component Review Coverage

One row per component (FR-003, SC-002). Columns are fixed by [contracts/audit-records.md](../contracts/audit-records.md#coveragemd). Allowed `Status` values: `not-started`, `in-review`, `complete`.

| Component | Scope reviewed | Method | Reviewer tier | Date | Status | Findings |
|-----------|----------------|--------|---------------|------|--------|----------|
| agent/ | All 33 agent files including cmd/main.go, internal/ handlers (actions, auth, caps, console, files, heartbeat, logs, mods, players, quiesce, rcon, status), openapi.yaml, specs.md | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-102, F-103, F-104, F-105, F-106, F-107, F-108, F-109, F-110, F-111 |
| api/ | cmd/main.go, cmd/bootstrap.go, internal/handlers/ (all non-test), internal/auth/, internal/rbac/, internal/db/ (full), internal/kube/, internal/audit/, internal/notify/ (partial), internal/ws/, internal/registry/, internal/telemetry/ | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-074, F-075, F-076, F-077, F-081, F-082, F-083, F-085, F-086, F-087, F-088, F-089 |
| audit-syslog-bridge/ | main.go, bridge_test.go, specs.md, README.md, Dockerfile, go.mod, .testcoverage.yml | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-195, F-196, F-197, F-198 |
| capture-sidecar/ | cmd/main.go, internal/auth/tls.go, internal/capture/ (afpacket.go, filter.go, writer.go), internal/httpserver/handlers.go, specs.md, Dockerfile, go.mod, .testcoverage.yml; operator sidecar client reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-187, F-188, F-189, F-190, F-191, F-192, F-193 |
| gameaction/ | action.go, action_test.go, specs.md, go.mod, .testcoverage.yml; api and agent importers reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-149, F-150, F-151, F-152 |
| gameproto/ | gameproto.go, classifier.go, registry.go, demo.go, minecraft.go, terraria.go, specs.md, go.mod, .testcoverage.yml, test files (partial), sentinel usage reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-153, F-154, F-155, F-156, F-157, F-158 |
| gp-module/ | All non-test source: cmd/gp-module/, internal/archetypes/, internal/common/, internal/packager/, internal/preview/, internal/scaffold/, internal/validator/, pkg/ subdirectories, specs.md, go.mod; test functions list; operator and API usage reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-159, F-160, F-161, F-162, F-163, F-164, F-165, F-166, F-167, F-168 |
| mcp-server/ | main.go, tools.go, fixadvice.go, internal/kube/client.go and client_test.go, specs.md, README.md, Dockerfile, .testcoverage.yml; chart RBAC and CRD usage reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-204, F-205, F-206, F-207, F-208, F-209, F-210 |
| netguard/ | netguard.go, netguard_test.go, specs.md, go.mod, .testcoverage.yml; all call sites grepped; operator and agent usage reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | none |
| operator/ | cmd/main.go, internal/agent/client.go, sidecar_capture.go, internal/controller/ (all non-test files), internal/modsrc/, internal/oci/, internal/verify/, api/v1alpha1/, config/, specs.md, go.mod; test fixtures reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-044, F-045, F-046, F-047, F-048, F-049, F-050, F-051, F-052, F-054, F-055, F-056, F-057, F-058, F-059, F-060, F-061, F-062, F-063 |
| sentinel/ | main.go, specs.md, Dockerfile, .testcoverage.yml, go.mod, main_test.go (partial); operator wiring reviewed; gameproto contract reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-179, F-180, F-181, F-182, F-183, F-184, F-185, F-186, F-254 |
| svcutil/ | env.go, env_test.go, server.go, server_test.go, specs.md, go.mod, .testcoverage.yml; all importers grepped; consumer binaries reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-170, F-171 |
| telemetry-receiver/ | main.go, main_test.go, specs.md, README.md, Dockerfile, go.mod, .testcoverage.yml; API reporter reviewed; chart wiring checked | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-200, F-201 |
| test/e2e/ | `test/e2e/buckets.sh`, `test/e2e/specs.md`, `test/e2e/internal/specs.md`, CI wiring (`.github/workflows/ci.yaml`), env/gameprobe/gamebot helpers, test suites, JSON schema validation | code-review | sonnet → opus | 2026-09-23 | complete | F-040, F-041, F-042 |
| tunnel/ | main.go, specs.md, Dockerfile.frp, Dockerfile.playit, Dockerfile.tailscale, go.mod, .testcoverage.yml, main_test.go (partial); operator wiring reviewed; docs/tunnels.md reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-172, F-173, F-174, F-175, F-176 |
| web/ | specs.md, index.html, package.json, eslint.config.js, tsconfig.json, src/main.tsx, src/router/tree.tsx, src/lib/ (all files), src/routes/ (most files and tabs), src/components/ (all directories); server-side endpoints reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-115, F-116, F-117, F-118, F-119, F-120, F-121, F-122, F-123, F-124, F-125, F-126, F-127, F-128, F-129, F-130, F-131, F-132, F-133, F-134, F-135, F-136, F-137, F-138, F-139, F-140, F-141, F-251 |
| charts/gameplane/ | Chart.yaml, values.yaml, all 18 templates, crds/*.yaml, docs/install.md, docs/networking.md, docs/security.md (chart sections); API flags, operator flags, CRD rendering, NetworkPolicy logic reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-028, F-212, F-213, F-214, F-215, F-216, F-217, F-218, F-219, F-220, F-221, F-222, F-223, F-224, F-225, F-226, F-252 |
| deploy/ | cluster.yaml, up.sh, down.sh, e2e.sh, upgrade.sh (all files); Makefile targets and script usage reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-029, F-232, F-233, F-234, F-255 |
| hack/ | check-doc-versions.sh, check-links.sh, check-specs.sh, gen-module-schema.py (all files); Makefile targets, CLAUDE.md commands, .testcoverage.yml thresholds reviewed | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-026, F-236, F-237 |
| .github/workflows/ | ci.yaml (all 1541 lines), release.yaml, publish-edge.yaml, images.yaml, republish-modules.yaml, screenshot-refresh.yaml, visual-diff.yaml, actions in .github/actions/, zizmor.yml, modules/build.sh, docs/contributing.md | code-review | opus → opus (independent, OD-020) | 2026-09-24 | complete | F-238, F-239, F-240, F-241, F-242, F-243, F-244, F-245 |
Comment thread
ValgulNecron marked this conversation as resolved.
| .github/actions/ | `build-e2e-images/action.yml`, `dump-cluster-state/action.yml`, `e2e-images/action.yml`, `go-cache/action.yml`, and their callers in `.github/workflows/ci.yaml` | code-review | sonnet → opus | 2026-10-04 | complete | F-264, F-265, F-271, F-272 |
| images/ | `README.md`, `common/steamcmd/Dockerfile`, `common/steamcmd/steam-install.sh`, `games/nuclear-option/Dockerfile`, `games/nuclear-option/entrypoint.sh`, and their build wiring in `.github/workflows/images.yaml` | code-review | sonnet → opus | 2026-10-04 | complete | F-266, F-267, F-268, F-269, F-270 |
| docs/ | `docs/agent-architecture.md`, `docs/architecture.md`, `docs/comparison-sources.md`, `docs/contributing.md`, `docs/dependencies.md`, `docs/game-coverage.md`, `docs/install.md`, `docs/key-rotation.md`, `docs/module-authoring.md`, `docs/networking.md`, `docs/notifications.md`, `docs/oidc.md`, `docs/roadmap.md`, `docs/security.md`, `docs/tunnels.md` | code-review | sonnet → opus | 2026-09-23 | complete | F-027, F-031, F-032, F-033, F-034, F-035, F-036 |
| root docs | `README.md`, `CHANGELOG.md`, `SECURITY_AUDIT.md`, `CLAUDE.md` | code-review | sonnet → opus | 2026-09-23 | complete | F-030, F-043, F-253 |
| design-export/ | `design-export/json/*.json` (365 files): extracted `name`/`type` fields and diffed `Screen/*` list against `web/src/router/tree.tsx` | code-review | sonnet → opus | 2026-09-23 | complete | none |
| modules/ | All 30 `modules/*/module.yaml` and `modules/*/template.yaml`; validated structurally against schemas; `modules/.schema/`, `modules/validate.py`, `docs/module-authoring.md` config-schema section; operator module-handling code | consistency-only | sonnet → opus | 2026-09-23 | complete | none |
| website/ | `website/src/config.ts`, `website/src/pages/games.astro`, `website/src/pages/index.astro`, content pages and docs; game-count and version claims; grepped for stale patterns across `*.mdx` and `.astro` | consistency-only | sonnet → opus | 2026-09-23 | complete | F-037, F-038, F-039 |
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[
{
"kind": "GameServer",
"name": "mc-fabric",
"namespace": "gameplane-games",
"uid": "2d67c5ad-ff8f-4e26-a188-be5ea9b6ad0b",
"generation": 4,
"phase": "Running"
},
{
"kind": "GameServer",
"name": "soak-bogus-pool",
"namespace": "gameplane-games",
"uid": "e12cb363-e632-4433-9bec-deae2e9d5a57",
"generation": 1,
"phase": "Running"
},
{
"kind": "GameServer",
"name": "soak-no-preference",
"namespace": "gameplane-games",
"uid": "62412014-b54a-4da4-b232-4e5543a80c90",
"generation": 1,
"phase": "Running"
},
{
"kind": "GameServer",
"name": "soak-pool-west",
"namespace": "gameplane-games",
"uid": "65e25ef6-3eda-4eb4-935a-1f2e45389a77",
"generation": 1,
"phase": "Running"
},
{
"kind": "GameServer",
"name": "squad",
"namespace": "gameplane-games",
"uid": "a86ae4e2-ef35-4463-8202-657daff52236",
"generation": 1,
"phase": "Failed"
}
]
Loading
Loading