#401: publish reviewed Runtime Evidence + shared-auth + #352 candidate - #10
Conversation
…stream Squash the accepted NousResearch#358/NousResearch#380 runtime and profile-auth candidate onto current upstream without importing its second-parent history. Repair the Flux profile-root credential assertion and invoke the installed ascii-guard console entry before pinned uv fallbacks. Co-authored-by: Hermes Agent <hermes-agent@local>
…01-074431-t-c37b3a63 fix(runtime): publish reviewed NousResearch#358/NousResearch#380 candidate on current upstream
|
The label authorizes no merge by itself. Merge remains bound to exact PR/head/base plus complete authoritative non-empty green CI and final provider readback. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8eae364847
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| source = _load_auth_store(home / "auth.json") | ||
| _merge_section(merged, source, "providers", conflict_policy) | ||
| _merge_section(merged, source, "credential_pool", conflict_policy) |
There was a problem hiding this comment.
Preserve suppression state during shared-auth migration
When a migrated profile has top-level suppressed_sources entries, this loop copies only providers and credential_pool before switching the profile to the shared store. The suppression markers written after a user removes an env/device credential are therefore lost, allowing those credentials to be re-seeded on the next pool load; active_provider is similarly discarded. Merge these top-level auth fields with explicit conflict semantics before committing the authority change.
AGENTS.md reference: AGENTS.md:L84-L87
Useful? React with 👍 / 👎.
| getattr(cli, "result_meta_file", None) | ||
| or getattr(cli, "result_meta_fd", None) is not None | ||
| ): | ||
| cli._publish_result_metadata(result) |
There was a problem hiding this comment.
Publish metadata for non-quiet one-shot queries
The CLI accepts --result-meta-file and --result-meta-fd for any classic --query, but this publication call is nested under if quiet. Thus hermes chat -q ... --result-meta-file ... completes without creating the promised file, while the FD form merely closes the pipe and yields EOF. Publish from the shared one-shot completion path, or reject the option unless --quiet is present before invoking the model.
AGENTS.md reference: AGENTS.md:L84-L87
Useful? React with 👍 / 👎.
| def _root_and_profile(home: Path) -> tuple[Path, str]: | ||
| if home.parent.name == "profiles" and home.parent.parent.name == ".hermes": | ||
| return home.parent.parent, home.name | ||
| return home, "default" |
There was a problem hiding this comment.
Recognize profiles under custom Docker roots
For a supported custom profile home such as /opt/data/profiles/worker, this condition fails solely because the grandparent is not named .hermes, so the helper treats the profile directory as the shared root. With auth.authority: shared, stage-two bootstrap then writes /opt/data/profiles/worker/auth.json, while the application resolves /opt/data/auth.json, leaving the runtime unauthenticated. Match the application's rule that any <root>/profiles/<name> path has <root> as its shared root.
AGENTS.md reference: AGENTS.md:L84-L87
Useful? React with 👍 / 👎.
c7309ae
into
release/401-base-87bc7106-20260801-t813c3f87
Scope
Owned-fork publication and CI artifact for
cermm/wc-infrastructure#401, with necessary prerequisites#358and#380.8eae3648479bb9983f2a42695b8b0c2ad6aebe2b50fe7deceda6f34c05c71dc4ef43177759636e4587bc710609f8b89b6e6b4aa418dde8ee30ec6873(freshly readNousResearch/hermes-agent@main)003af7f85ce2ebe24b38556d735a0d7678a4a8ddmerge-treereadback.Review evidence
hermes-shared-auth-authority/t_cf3d2f5d— PASS,approved=truehermes-shared-auth-authority/t_a8092ac0— PASS,approved=truehermes-shared-auth-authority/t_dfdca965— PASS,approved=trueAuthorization and boundaries
Source-bound umbrella: Discord thread
1528018072944902245, message1533030101162266695; markerumbrella-auth-1533030101162266695.This PR targets only an owned-fork base branch. It does not mutate NousResearch upstream. Merge is permitted only for this exact head/base after complete authoritative non-empty green CI, review-label/attribution gates, mergeability and provider readback. No force/history rewrite, install, diagnostic, profile/auth/config/SOUL mutation, issue closure or cleanup is part of this PR step.