Skip to content

runtime-profile: publish default bootstrap resources#9

Merged
idy merged 3 commits into
mainfrom
codex/issue-7-default-runtime-bootstrap
Jul 24, 2026
Merged

runtime-profile: publish default bootstrap resources#9
idy merged 3 commits into
mainfrom
codex/issue-7-default-runtime-bootstrap

Conversation

@idy

@idy idy commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

  • publish the canonical, applyable RuntimeProfile/default using the current GizClaw Desktop default composition
  • publish RegistrationToken/default-runtime with public client token default
  • validate catalog identities, reference closure, selected Workflow aliases, duplicate tokens, placeholders, and prohibited deployment fields
  • document dependency ordering, per-Server resource ownership, and the documentation-only example boundary

Validation

  • python scripts/validate_catalog.py
  • python -m unittest discover -s tests -v
  • ruff format --check scripts tests
  • ruff check scripts tests
  • git diff --check
  • GizClaw main@95d08074 isolated e2e:
    • applying the token before the profile fails with an unresolved profile error
    • first profile/token apply returns created
    • second profile/token apply returns unchanged
    • a peer registering with token default receives RuntimeProfile/default

Closes #7

Raids needs one canonical public runtime composition and stable bootstrap
selector so consumers do not independently recreate the same contract.

- Publish RuntimeProfile/default with the complete public resource closure
- Add RegistrationToken/default-runtime with the public token value default
- Validate catalog identities, references, workflow aliases, and prohibited defaults
- Document dependency order, per-Server ownership, and the example boundary

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 OpenAI PR review

Reviewed commit: 2ff594129c

Reviewed range: d52656c3d7..2ff594129c

Review mode: full

Session key: repo-1308402561-pr-9-v2

Generation key: b8d95a3a9b4eaaadde27123bebe634b695f5bafb8cb69ab5fbe4647347a29da1

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 50s

Input tokens: 157,071

Cached input tokens: 131,468

Cache write tokens: 25,579

Cache hit ratio: 83.7%

Output tokens: 4,314

Reasoning tokens: 3,098

Total tokens: 161,385

Estimated Codex credits: 4.040

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:2f55cae5e61e4d78a51cd4d979ca47a97cf6d55d14e91e2f181628521bf35882 46s 106,504 82,806 77.7% 23,680 4,011 3,063 110,515 3.503
aggregate:b8d95a3a9b4eaaadde27123bebe634b695f5bafb8cb69ab5fbe4647347a29da1 4s 50,567 48,662 96.2% 1,899 303 35 50,870 0.537

Found 1 actionable validation gap.

1 inline finding published.

Comment thread scripts/validate_catalog.py
Registration tokens are independently publishable catalog resources, so each one must resolve its target profile before consumers apply it.

- Check every token runtime_profile_name against collected RuntimeProfiles
- Reject missing or empty profile selectors
- Add a regression test for a non-default token with a missing profile

Generated with [Codex](https://github.com/openai)
@idy

idy commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

@codex review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 OpenAI PR review

Reviewed commit: 9fa7df69e9

Reviewed range: 2ff594129c..9fa7df69e9

Review mode: incremental

Session key: repo-1308402561-pr-9-v2

Generation key: 22a7274d4169f5a86596ec6080614a7bcadd30bb9985e1429c12c630d8feb742

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 13s

Input tokens: 109,109

Cached input tokens: 81,023

Cache write tokens: 28,074

Cache hit ratio: 74.3%

Output tokens: 542

Reasoning tokens: 232

Total tokens: 109,651

Estimated Codex credits: 2.465

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:8f4b6abb163ca5199b41924cf7e6b215e02f6e544b4de6f325c779e4c71188ea 9s 53,371 26,111 48.9% 27,254 391 222 53,762 2.014
aggregate:22a7274d4169f5a86596ec6080614a7bcadd30bb9985e1429c12c630d8feb742 4s 55,738 54,912 98.5% 820 151 10 55,889 0.451

No actionable findings.

No actionable findings.

@idy idy left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default RuntimeProfile and bootstrap token composition looks coherent, the existing profile-reference finding is fixed, and the advertised catalog/unit/Ruff checks pass locally. I found one remaining actionable validation gap on arbitrary RegistrationToken resources and left it inline.

Comment thread scripts/validate_catalog.py Outdated
@idy

idy commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Reviewed the latest head 9fa7df6. I found one blocking catalog-validation gap. The published RuntimeProfile/default itself is byte-for-byte identical to GizClaw origin/main's current Desktop default profile, and the catalog validator, 7 unit tests, Ruff 0.14.14, git diff --check, and all current PR checks pass.

[P1] Normalize token values before duplicate detection — scripts/validate_catalog.py:342

The duplicate map is keyed by the raw YAML string, but GizClaw normalizes RegistrationToken.token with strings.TrimSpace before hashing and enforcing uniqueness. As a result, two resources with token: other and token: " other " both pass this validator, while applying the second one to a clean Server returns a 409 because both normalize to other. That violates #7's acceptance criterion that repository validation reject duplicate token values and permits a release that passes CI but cannot be fully applied. Normalize the token exactly as the Server does (also rejecting an empty normalized value) before checking token_values, and add a regression test for a whitespace-only collision.

Catalog validation must use the same token normalization and required-field semantics as GizClaw Server or invalid manifests can pass CI and fail during apply.

- Normalize token values with the Go TrimSpace character set before duplicate detection
- Reject missing, empty, and non-string token values
- Cover ASCII and Unicode whitespace collisions plus invalid token shapes

Generated with [Codex](https://github.com/openai)
@idy

idy commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Addressed the additional token-normalization finding in da222cc: catalog validation now mirrors Go strings.TrimSpace before token duplicate detection and rejects missing, empty, or non-string token values. Added regression coverage for ASCII and Unicode whitespace collisions plus invalid token shapes. Verified all 1,033 YAML files, 9 unit tests, Ruff 0.14.14, and git diff --check.

@idy

idy commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

@codex

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 OpenAI PR review

Reviewed commit: da222cccdc

Reviewed range: 9fa7df69e9..da222cccdc

Review mode: incremental

Session key: repo-1308402561-pr-9-v2

Generation key: 077d46a6ff92bc5a2ebd0e91fbba77854c819bc80202b953f204d225bbb49dc4

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 11s

Input tokens: 120,548

Cached input tokens: 89,438

Cache write tokens: 31,098

Cache hit ratio: 74.2%

Output tokens: 534

Reasoning tokens: 224

Total tokens: 121,082

Estimated Codex credits: 2.704

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:8fadd324944a4e9bb57a5657c8d0cc55bc68668ccbf3336b018331bdbb35387e 7s 58,749 28,451 48.4% 30,292 386 217 59,135 2.216
aggregate:077d46a6ff92bc5a2ebd0e91fbba77854c819bc80202b953f204d225bbb49dc4 4s 61,799 60,987 98.7% 806 148 7 61,947 0.487

No actionable findings.

No actionable findings.

@idy

idy commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Re-reviewed the complete PR at da222cc. No new actionable or blocking findings remain.

The follow-up now mirrors Go strings.TrimSpace semantics before token uniqueness checks, keys duplicate detection by the normalized value, rejects missing/empty/non-string tokens, and adds regression coverage for ASCII and Unicode whitespace collisions. I independently reran the catalog validator over all 1,033 YAML files, all 9 unit tests, Ruff 0.14.14, and git diff --check; everything passed. The published RuntimeProfile/default remains byte-for-byte identical to GizClaw origin/main's current Desktop default profile, all PR checks are green, and the PR title/three review-ready commits remain coherent.

The clean-server apply/register E2E was not rerun in this pass; this review relies on the successful E2E recorded in the PR description for that path. From the Raids catalog and current Desktop-consumer contract perspective, this is ready to merge.

@idy
idy merged commit 2981f6b into main Jul 24, 2026
3 checks passed
@idy
idy deleted the codex/issue-7-default-runtime-bootstrap branch July 24, 2026 03:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

runtime-profile: Publish the public default RuntimeProfile and bootstrap token

1 participant