Repository navigation
Preserve DeepSeek partial sessions and startup failures - #67352
Conversation
Retain observed headless configuration and attributed startup failures without inferring conversation or accounting. Preserve direct canonical inputs and verify native, canonical, and unified persistence with sanitized CI shapes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. No ADR enforcement needed for PR #67352: the PR does not carry the 'implementation' label (has_implementation_label=false) and adds 0 new lines in default business logic directories (threshold: 100, no custom .design-gate.yml present). 4 files changed.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
✅ Ponytail Reviewer completed successfully!
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
There was a problem hiding this comment.
One removable scope expansion found.
net: -100 lines possible.
Generated by ✂️ Ponytail Reviewer for #67352 · codex · gpt56 · 13.4 AIC · ⌖ 7.5 AIC · ⊞ 13.5K
Comment /ponytail to run again
There was a problem hiding this comment.
🟡 Changes recommended
The configured provider is still discarded by unified-session projection.
1 open finding
What changed in this PR
Extends DeepSeek parsing to retain partial-session evidence and startup failures.
Changes:
- Preserves configuration, errors, exits, and completed assistant output.
- Adds sanitized regressions for real run shapes and canonical persistence.
- Documents headless parsing limits.
| File | Description |
|---|---|
docs/src/content/docs/reference/engines.md |
Documents DeepSeek evidence handling. |
actions/setup/js/parse_deepseek_log.cjs |
Expands parsing and redaction behavior. |
actions/setup/js/parse_deepseek_log.test.cjs |
Adds parsing and persistence regressions. |
actions/setup/js/fixtures/deepseek_ci_logs.cjs |
Adds sanitized run fixtures. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Comment MemoryPeek at saved memory (pr-code-quality-reviewer)Note This comment is managed by comment memory.Expand the saved memory block to view or edit the persistent context for this thread.
|
There was a problem hiding this comment.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 55.5 AIC · ⌖ 6.73 AIC · ⊞ 19.9K
Comment /review to run again
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /diagnosing-bugs and /tdd — this is a well-evidenced data-loss fix with real Actions-run fixtures and a thorough new test suite (267 passing locally per the PR description). One correctness/security issue in the new harness-failure detection could cause legitimate assistant answers to be discarded or replaced by a spoofed failure if the answer text happens to contain the exact harness-failure log line (e.g. quoted logs or injected content) — see inline comment.
📋 Key Themes & Highlights
Key Themes
- Unscoped failure-line match:
extractHeadlessErrorssearches the whole body for the harness-failure sentinel line without the same exclusion logicextractHeadlessAnsweruses to distinguish genuine answer content from infrastructure output, so an answer that merely quotes/mentions that exact line gets misclassified as a real failure (loses the real answer, fabricatessession.error/agent.execution).
Positive Highlights
- ✅ Real, sanitized Actions-artifact fixtures (
deepseek_ci_logs.cjs) ground the new startup-failure and timeout paths in actual observed behavior rather than invented shapes. - ✅ Extensive regression coverage for ambiguous/partial/injected content (mask redaction, quoted errors, JSON-looking answers, repeated envelopes) shows careful attention to not over-claiming evidence.
- ✅ Clear doc update in
engines.mdexplicitly scoping what this headless profile does and does not expose.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 95.4 AIC · ⌖ 14.5 AIC · ⊞ 10.1K
Comment /matt to run again
Keep native parsing scoped to observed headless output, removing the generic canonical fallback and its redaction bypass. Corroborate startup failure framing and wrapper outcomes so quoted harness lines remain assistant text. Support Node file headers with columns and clarify intentional provider projection. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

DeepSeek's parser discarded observed configuration and startup errors unless stdout contained a completed answer. Existing failing and timed-out Actions runs therefore lost agent evidence during canonical and unified session conversion.
Changes
session.errorobservations with observed execution exits.Evidence and scope
Audited existing runs 33456355349, 37553714211, and 37866549668 read-only. Original stdout replays retain the successful run's exact 577-character answer, the startup failure's initialization/errors, and the timeout's initialization. All 441 agent runtime usage reports in the latest run match their published unified projections.
The captured headless logs do not expose native structured reasoning, tool lifecycles, refusals, or agent accounting. Those observations are not fabricated. Process exit zero and a configured model of
autoare not treated as task success or a resolved model. No workflows were triggered; shared normalizers, types, projections, and other engines are unchanged.Validation
npm run typecheckandnpm run schema:session:checkmake fmt; allmake lintprerequisites passed. The first full-lint attempt encountered a shared golangci-lint lock; the targetedmake golintretry returned zero issues and the remaining lint prerequisites passed. JavaScript lint reported existing non-blocking warnings.go test ./actions/setup -run '^TestSessionParserSourcesIncludeLocalDependencies$' -count=1make agent-report-progressusing installed Bash 5, including build, formatting/lint and impacted tests. The impacted Go target skipped tests because no Go source changed.The prior failed CI conclusion in run 38028006701 is the unrelated Impeccable reviewer workflow reporting
missing_terminal_safe_output; product build, JavaScript tests, typecheck and lint passed on the earlier revision. CI for the latest pushed revision remains unverified; a maintainer must re-trigger it before merge.