fix(dsh): accept rc.1 permission preset origin - #98
Merged
Conversation
Extend Story QoderAI#93 through docs/specs/2026-08-18-93-deepseek-harness-session-evidence.md after the published 0.1.1-rc.1 real E2E completed successfully. Better Harness fail-closed validation detects one additive permission/preset schema drift. The spec defines strict optional-origin qualification, RED-to-GREEN evidence, public-path privacy requalification, and rollback before implementation. Validation: Spec Preparation and specification review passed; doc-link graph tests passed 6/6; git diff --check passed. Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
Add Story QoderAI#93 RED coverage for AC-12 through AC-14 using docs/specs/2026-08-18-93-deepseek-harness-session-evidence.md. The public discovery path currently rejects the legal default origin with DSH_EVENT_SHAPE_DRIFT, while the matrix locks the three legal enum values, legacy omission, invalid types and values, unknown siblings, preset typing, and validation-only output. RED: npx vitest run test/sessions/session-analysis-dsh-provider.test.mjs -t "DSH discovery accepts the pinned rc1 permission preset origin". Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
Implement Story QoderAI#93 AC-12 through AC-14 from docs/specs/2026-08-18-93-deepseek-harness-session-evidence.md by extending only the DSH permission/preset exact-shape validator. The optional field accepts default, selection, or inferred while legacy omission remains valid; invalid values, types, and unrelated keys continue to fail closed, and normalization projects no new semantics. Validated with the original RED, the exhaustive origin matrix, 22 provider tests, and 97 focused DSH tests. Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
An isolated origin-less baseline reproduction at upstream/main proves the known default-facts direct-user-prompt exposure predates the optional origin validator. Clarify AC-15 to require no new privacy regression while keeping that defect explicit, unresolved, and outside this compatibility follow-up. Updates Story QoderAI#93 using docs/specs/2026-08-18-93-deepseek-harness-session-evidence.md. The correction was reviewed in Spec Preparation mode and the documentation link graph passed 6/6. Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DSH 0.1.1-rc.1 adds an optional closed-enum
originfield to persistedpermission/presetevents. Extend the existing exact DSH validator to accept the pinned field while preserving legacy origin-less evidence, fail-closed drift handling, and validation-only semantics.Why
sessionAnalysisadapter instead of being rejected solely for the audited optional field.Traceability and Scope
docs/specs/2026-08-18-93-deepseek-harness-session-evidence.md, AC-12 through AC-16scripts/session-analysis/platforms/dsh.mjs, its focused provider test, and the canonical Story [Feature]: Add partial DeepSeek Harness session-evidence adapter #93 specChange Type
Test and Review Evidence
@deepseek-ai/dsh@0.1.1-rc.1E2Enode --testfailed; DSH fixed only the implementation; final test passednpm test -- --maxWorkers=4npm run harness:generatednpm run harness:testnpm run harness-ui:testnpm run harness-studio:testnpm run pack:verifygit diff --check upstream/main...HEADManual evidence:
origin: "default"withDSH_EVENT_SHAPE_DRIFTbefore the three-line production fix.default,selection,inferred, and missing origin pass. Null, empty/arbitrary strings, numbers, booleans, objects, arrays, unrelated sibling keys, and invalid preset shape remain rejected.996fd3d3045dfe29935fc7948377416712ab2711. Baseline and this branch produced identical sessions/events/facts/show/gated-show results for that oracle. The rc.1 adaptation introduces no new privacy regression; the separate baseline defect remains unresolved and outside this PR.origin: "default"; no origin field or derived claim appeared in normalized events, facts, or public analytics.Risk and Recovery
factscan expose the direct-user prompt. This predates the origin patch, is not fixed or hidden here, and must remain a separate privacy effort.AI Involvement
Checklist
AGENTS.md,CONTRIBUTING.md, and the relevant canonical-owner guidance.CHANGELOG.md— explicitly excluded by the accepted Story [Feature]: Add partial DeepSeek Harness session-evidence adapter #93 follow-up scope.