feat(portfolio): render truth-native decision digest#173
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6ae989363d
ℹ️ 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".
| f"- PortfolioTruthV1 schema `{schema_version}`, generated `{generated_at}`.", | ||
| "", | ||
| "### Summary", | ||
| f"{count} decision{'s' if count != 1 else ''} | contract `{CONTRACT_VERSION}`", |
There was a problem hiding this comment.
Use the digest contract in Markdown
When the nightly scheduler consumes the Markdown digest instead of JSON, this line labels the rendered artifact with the embedded queue contract (decision_queue_v1) even though build_decision_digest() emits the artifact as portfolio_decision_digest_v1. That makes the provenance marker unable to distinguish digest-format changes from raw DecisionQueueV1 output; render DIGEST_CONTRACT_VERSION here, or include both contracts explicitly.
Useful? React with 👍 / 👎.
What
Why
The nightly scheduler still depended on cache-backed portfolio-health heuristics and a headless model call even though GithubRepoAuditor already owns canonical portfolio decisions.
How
The renderer reuses build_decision_queue without adding a second classifier. The external scheduler cutover is verified separately and preserves producer and rehearsal gates.
Testing
Performance impact
Removes the scheduled model and MCP/cache dependency; rendering is a single local JSON read.
Risk / Notes
The unversioned scheduler change is not part of this PR. Live activation waits for this PR to merge so the dedicated nightly checkout can consume the renderer.