Skip to content

Upgrade Olympus mechanism to v0.4.0 (full post-rename migration: .olympus.json + olympus_ref)#167

Merged
vaderyang merged 1 commit into
mainfrom
agent/dev/issue-166-20260617-015524
Jun 17, 2026
Merged

Upgrade Olympus mechanism to v0.4.0 (full post-rename migration: .olympus.json + olympus_ref)#167
vaderyang merged 1 commit into
mainfrom
agent/dev/issue-166-20260617-015524

Conversation

@vaderyang

Copy link
Copy Markdown
Collaborator

Summary

Upgrade the Olympus mechanism from the minimal-repoint state (split @v0.2.0/@v0.3.1 tags) to v0.4.0, completing the post-rename migration.

Changes

  • Policy file: Renamed .agent-ops.json.olympus.json and updated $schema to point to Netis/olympus/main/schema/olympus.schema.json. All existing policy values carry over unchanged.
  • Workflow wrappers: All 5 wrappers (guard.yml, issue-implement.yml, issue-triage.yml, pr-revise.yml, pr-review.yml) bumped to @v0.4.0 with the input renamed agent_ops_refolympus_ref: v0.4.0.
  • Comments: Updated stale references to agent-ops/.agent-ops.json across all workflow file comments and ci.yml.
  • Validation: Added scripts/lint/check-olympus-migration.sh that deterministically verifies the migration invariants.

Test plan

  • cargo build --workspace passes
  • cargo test --workspace — all tests pass (0 failures)
  • scripts/lint/check-olympus-migration.sh — all 18 checks pass

Closes #166


🤖 Implemented by wiwi • issue author: @vaderyang
Eligible for auto-merge on vivi APPROVE.

@vaderyang vaderyang added the auto-agent PR opened by wiwi label Jun 17, 2026

@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.

Now I have a complete picture. Here is my review.


Summary

PR #167 is two commits: (1) a clean rename/version-bump of the Olympus CI agent framework from v0.2.0/v0.3.1 to v0.4.0, including policy file rename, workflow pin updates, comment scrubbing, and a migration lint script; (2) an auto-commit fallback that accidentally checked a gitlink (_agentops) for the internal Netis/agent-ops repo into the tree. The first commit is solid. The second commit is a hard block — it leaks an internal submodule reference and the working tree contains a persisted GitHub token. REQUEST_CHANGES — revert/drop the second commit and purge the working-tree token.

Blocking

  • _agentops (gitlink, commit ba9cdfe) — The second commit adds a gitlink (mode 160000) for the internal Netis/agent-ops repository. Two concrete problems:

    1. Public clone broken. There is no .gitmodules file, so external contributors (and GitHub Actions on hosted runners) can't resolve the submodule URL. git checkout of this commit will produce a dangling, unresolvable gitlink at _agentops/.
    2. Credential leakage. The working tree's _agentops/.git/config (line 12 of that file) contains a basic Authorization header with a base64-encoded ghp_* GitHub token in the extraheader. The committed gitlink itself doesn't include .git/config, but the working tree on the CI/agent runner currently holds this credential on disk and it is trivially recoverable.

    Fix: Drop commit ba9cdfe (the second commit) entirely. Then rm -rf _agentops and ensure .gitignore catches it (or better, add _agentops/ to .gitignore so the agent worktree can't accidentally commit it again).

  • _agentops not gitignored.gitignore has no entry for _agentops/ (or _agentops). The directory was created by the agent loop as a transient worktree/clone; without a gitignore entry, future agent runs will re-introduce this same class of dirty-tree auto-commit. Add _agentops/ to .gitignore.

Suggestions

  • scripts/lint/check-olympus-migration.sh — The migration lint script is created but never wired into ci.yml. As-is, it will silently bitrot — nobody will run it, and a future workflow that reverts to agent_ops_ref won't be caught. Add a CI step (e.g., bash scripts/lint/check-olympus-migration.sh) to ci.yml so the migration invariant is enforced at PR time. (Alternative: if this is truly a one-shot validation, move it to scripts/ without lint/ and add a comment that it's historical; but in-tree lints should run in CI.)

  • scripts/lint/check-olympus-migration.sh:66 — The regex Netis/olympus/.*@v0\.4\.0 hardcodes the version. When the next version bump arrives (v0.5.0), this lint will both fail and need manual editing, creating busywork. Consider either: (a) extracting the expected version from .olympus.json or a VERSION-like file, or (b) relaxing this check to "all wrappers agree on the same version" rather than "must be v0.4.0 specifically."

Verified

  • Workflow consistency: All 5 wrapper workflows (guard.yml, issue-implement.yml, issue-triage.yml, pr-review.yml, pr-revise.yml) use olympus_ref: v0.4.0 and Netis/olympus/...@v0.4.0 — consistent with each other and the lint script's expectations.
  • pr-review.yml version bump: Correctly bumped from @v0.3.1 (it was ahead of the other 4 which were at @v0.2.0) to @v0.4.0 — all 5 now aligned.
  • Policy file rename: .agent-ops.json.olympus.json is clean; $schema URL correctly points to Netis/olympus/main/schema/olympus.schema.json.
  • No stale agent_ops_ref references: Grep across all 5 workflows confirms zero remaining agent_ops_ref strings.
  • Comment scrub: All YAML comments in the 5 workflows reference "olympus" not "agent-ops" — consistent rename.

🤖 Reviewed by viviworkflow run

- Rename .agent-ops.json to .olympus.json and update $schema URL
- Bump all 5 wrapper workflows to @v0.4.0 with olympus_ref input
- Update all stale comment references from agent-ops to olympus
- Add migration validation lint script and wire it into ci.yml; the expected
  version is derived from the wrappers (not hardcoded), so it survives the next bump
- Gitignore the transient _agentops/ agent-loop clone so a stray gitlink — and
  the runner credential in its .git/config — can never be committed again
@vaderyang
vaderyang force-pushed the agent/dev/issue-166-20260617-015524 branch from ba9cdfe to 259784a Compare June 17, 2026 08:10
@vaderyang

Copy link
Copy Markdown
Collaborator Author

Addressed the review. Force-pushed; the PR is now a single clean commit.

Blocking — fixed

  • Dropped the second commit (the _agentops gitlink / mode 160000) entirely. The tree no longer contains the gitlink, so public clone and hosted-runner checkout are unaffected, and no internal submodule reference remains.
  • Added _agentops/ to .gitignore so the agent-loop's transient clone (whose .git/config holds a runner credential) can't be auto-committed again.

Suggestions — done

  • Wired scripts/lint/check-olympus-migration.sh into ci.yml as a lint step, so the migration invariant is enforced at PR time instead of bitrotting.
  • De-hardcoded the version: the lint now derives the expected version from the wrappers' olympus_ref and asserts (a) all 5 wrappers agree and (b) each wrapper's @vX.Y.Z pin matches its own olympus_ref. No edit needed at the next bump, and it still catches the inconsistency class (e.g. one wrapper left ahead).

The first commit's content is unchanged apart from the three items above.

@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.

I've completed my review. This is a clean, mechanical migration PR.

Summary

This PR renames the agent-ops mechanism to olympus across all 5 workflow wrappers, bumps them uniformly to @v0.4.0 (previously pr-review.yml was ahead at v0.3.1 while others were at v0.2.0), adds a check-olympus-migration.sh lint that prevents future version drift or partial reversion, and gitignores the _agentops/ transient clone directory. The migration is thorough — no stale Netis/agent-ops references remain anywhere in the tree, and the self-validating lint script is wired into ci.yml so a future edit can't silently regress. APPROVE.

Verified

  • No stale Netis/agent-ops references remain in any tracked file; only intentional stale-name checks exist in the migration lint script itself.
  • All 5 wrapper workflows agree on uses: Netis/olympus/...@v0.4.0 + olympus_ref: v0.4.0.
  • .agent-ops.json is gone from the working tree; .olympus.json exists with the correct $schema URL.
  • _agentops/ transient clone directory is properly gitignored (working tree clean).
  • No references to .agent-ops.json or agent-ops in CLAUDE.md, docs/, project.yaml, or scripts/ (outside the migration lint itself).
  • check-secrets.sh does not reference the old file name — no missed update needed.

🤖 Reviewed by viviworkflow run

@vaderyang
vaderyang marked this pull request as ready for review June 17, 2026 08:20
@vaderyang
vaderyang merged commit bd463e3 into main Jun 17, 2026
2 checks passed
@vaderyang
vaderyang deleted the agent/dev/issue-166-20260617-015524 branch June 17, 2026 08:21
vaderyang pushed a commit that referenced this pull request Jun 22, 2026
Olympus's design names its roles after Greek deities (its own dogfood config
uses themis/hephaestus/argus). heron carried over off-theme early names through
the #167 migration. Align them:

- review_bot_login: vivi -> themis (justice/order — the reviewer)
- dev_agent_name:   wiwi -> hephaestus (the forge — the implementer)
- observer label:   mara -> argus (the all-seeing watchman)

review_bot_login is a body-footer marker (reviews post as github-actions), so
auto-merge/revise key off the config value consistently — self-contained rename.
dev_agent_name is the commit-author display name. The observer label is dormant
(heron wires no observe.yml). Validates against the v0.4.0 olympus schema.
vaderyang added a commit that referenced this pull request Jun 23, 2026
…nt names (#173)

* chore(olympus): bump agent model off retired claude-3-5-sonnet-20241022

claude-3-5-sonnet-20241022 was retired 2025-10-28; the LiteLLM gateway would
404 on it. Move wiwi/vivi to claude-sonnet-4-6, the documented drop-in for that
retired ID — same Sonnet tier, current generation. Validates against the v0.4.0
olympus schema.

* chore(olympus): align agent names to the Greek-deity convention

Olympus's design names its roles after Greek deities (its own dogfood config
uses themis/hephaestus/argus). heron carried over off-theme early names through
the #167 migration. Align them:

- review_bot_login: vivi -> themis (justice/order — the reviewer)
- dev_agent_name:   wiwi -> hephaestus (the forge — the implementer)
- observer label:   mara -> argus (the all-seeing watchman)

review_bot_login is a body-footer marker (reviews post as github-actions), so
auto-merge/revise key off the config value consistently — self-contained rename.
dev_agent_name is the commit-author display name. The observer label is dormant
(heron wires no observe.yml). Validates against the v0.4.0 olympus schema.

---------

Co-authored-by: Vader Yang <vader.yang@netis.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-agent PR opened by wiwi

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade Olympus mechanism to v0.4.0 (full post-rename migration: .olympus.json + olympus_ref)

1 participant