Repository navigation
pr-debug: post landed-fix records to the knowledge intake mailbox issue - #138
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0e838e791e
ℹ️ 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".
| body = (BUGFIX_RECORD_MARKER + "\n```json\n" | ||
| + json.dumps(record, ensure_ascii=False, indent=1) + "\n```\n") |
There was a problem hiding this comment.
Cap mailbox comments below GitHub's body limit
When a run contains the default maximum of six groups with values near the existing per-field truncation limits, this serialization produces about 77,000 characters, exceeding GitHub's 65,536-character issue-comment limit. gh api then fails, and in the documented mailbox-only production configuration the fail-open path silently loses the entire valid record. Truncate or split the mailbox payload to the API limit while preserving the full local record.
Useful? React with 👍 / 👎.
The harvest step wrote its bugfix-run record only to a local drop directory, and the reviewbot that batches those records runs on another host: no pr_debug learning has ever reached a knowledge batch. When KNOWLEDGE_INTAKE_ISSUE names a mailbox issue (owner/repo#N), the step now also posts the same record as a comment carrying the bugfix-record:v1 marker and one fenced JSON block, through gh, after the drop file is written. The gate is the one that already admitted the step: an operator-configured mailbox plus a real, authorized push. It stays fail-open: a bad setting, a write error or a failed post is traced (knowledge_intake_publish_failed) and reported in outputs, never raised. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Js5CsiwSYjcAYvqti1Lp1Y
0e838e7 to
88d4ad5
Compare
pr.harvest_debug_knowledgewrote its bugfix-run record only to a local drop directory (KNOWLEDGE_INTAKE_DIR), and the reviewbot that batches those records runs on another host. In production the bot'sCOPILOT_INTAKE_DIRdoes not even exist, so nopr_debuglearning has ever reached a knowledge batch.Change
knowledge_intake_issue(KNOWLEDGE_INTAKE_ISSUE,owner/repo#N, default empty): the locked, pinned mailbox issue [Knowledge] intake mailbox: pr_debug landed-fix records (bugfix-record:v1) #135 in this repo.gh apias<!-- infermatrix-copilot:bugfix-record:v1 -->followed by one fenced JSON block (the comment body is also kept in the run directory). Either sink alone is enough; neither one's failure suppresses the other.ALLOW_POST=1; otherwise the post is a traced dry-run skip (knowledge_intake_publish_skipped). It also only ever runs after a real, authorized push. Fail-open is preserved: a bad setting, a write error, a non-zeroghexit, or a raised timeout is traced (knowledge_intake_publish_failed) and reported in outputs, never raised.SPEC/config.md,SPEC/engine/steps/pr.mdand the RFC rollout step describe the channel.Validation
test_phase1_cluster.py::test_drift_guard_unimportable_checked_class_fails_guard(vllm import, fails identically on cleanorigin/main).ALLOW_POST=0dry-run skip, mailbox-only configuration, drop failure not suppressing the mailbox, non-zeroghexit, raised timeout, off state, and the posted body equalling the drop record.check_doc_links.py,check_doc_citations.py,check_spec_freshness.py --strictpass.🤖 Generated with Claude Code
https://claude.ai/code/session_01Js5CsiwSYjcAYvqti1Lp1Y