Skip to content

feat(dsh): add shared Harness analysis - #110

Merged
phodal merged 3 commits into
QoderAI:mainfrom
Cobb04:feat/dsh-shared-harness-analysis
Aug 24, 2026
Merged

feat(dsh): add shared Harness analysis#110
phodal merged 3 commits into
QoderAI:mainfrom
Cobb04:feat/dsh-shared-harness-analysis

Conversation

@Cobb04

@Cobb04 Cobb04 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

DeepSeek Harness can now enter Better Harness's shared, inline Harness analysis path through Asset Practices, neutral Harness evidence, and Evidence Bundle collection. The change freezes one canonical configured cwd, advances Asset Baseline to v2 and Evidence Bundle to v3, and keeps current configured evidence separate from historical Session observation.

Why

Traceability and Scope

  • Spec/ADR, if applicable: Implemented #104 specification. The #101 configured-assets specification remains canonical for native DSH Skills and Instructions semantics; [Feature]: Add DSH shared Harness analysis with frozen-cwd Evidence Bundle support #104 is canonical for shared Harness admission, Asset Practices, Asset Baseline v2, Evidence Bundle v3/frozen cwd, Harness Report admission, and inline/no-files analysis.
  • Acceptance criteria addressed: AC-1 through AC-20, including canonical cwd and propagation (AC-3/AC-4), Asset Baseline v2 (AC-6), Bundle completeness (AC-17), and inline/no-files isolation (AC-18).
  • Canonical owners changed: host capability registry; workspace-topology configured-cwd resolver; shared configured/practice inventory, lint, integrity, and Baseline owners; Evidence Bundle context/lanes; neutral Harness report/task-loop propagation; Better Harness Skill routing; DSH support documentation.
  • Explicit non-goals: Report Rendering, Checkup, HTML/Markdown/Canvas output, public Quickstart or a durable /better-harness loop, Cordis/Profile/Preset/runtime Skills resolution, MCP/Plugin completeness, atomic snapshots, configured-to-historical causality, and shared Session privacy repair.

Change Type

  • Feature
  • Bug fix
  • Tests only
  • Documentation/community
  • Refactor with no intended behavior change
  • Dependency, packaging, or infrastructure

Test and Review Evidence

Check Result
Node 22.20.0 focused #104 owners + DSH regression boundary PASS — 15 files, 290/290
Node 24.x focused #104 owners + DSH regression boundary PASS — 15 files, 290/290
Shared Agent Customize / host profiles PASS — 4 files, 70/70
Existing DSH Session and configured-assets regressions PASS — included in the 290-test focused boundary
npm run test:dsh-configured-assets-native PASS — DSH 0.1.1-rc.2, no credentials
npm run test:dsh-native PASS — discovery and explicit invocation verified
Clean rebased npm run check PASS — 185.00s
Root Vitest PASS — 1525 passed, 1 skipped
Harness PASS — 167/167
Harness UI PASS — 30/30
Harness Studio PASS — 255/255
npm run pack:verify PASS — npm 582 entries, runtime zip 844 entries
Markdown doc-link graph PASS — 8/8
git diff upstream/main...HEAD --check PASS

Manual or visual evidence: No visual surface changed. Existing merged DSH support was independently qualified before #104 against DSH 0.1.1-rc.2 at source b150a551b8d465e31e418e1b2eaf5e79bbb7d28e.

Risk and Recovery

  • Compatibility and cross-platform impact: Evidence Bundle advances from v2 to v3 and Asset Baseline from v1 to v2. Direct configured/practice routes now require existing directories and enforce native-realpath canonical containment across Windows, macOS, and Linux.
  • Package, plugin, schema, or generated-file impact: The new configured-cwd helper is included in package/runtime verification. Generic practiceCoverageRows and configured/practice entrypoint canonicalization affect shared hosts; cross-host regressions pass. No dependencies, lockfiles, versions, generated outputs, Report Rendering, or Checkup owners changed.
  • Rollback or recovery path: Revert the commits introduced by this PR.
  • Residual risk or unverified boundary: DSH Session and native configured-assets semantics are unchanged. Current configuration remains configured-not-observed; multi-owner snapshots are non-atomic and do not prove historical use. Report Rendering and Checkup remain unsupported for DSH.

AI Involvement

  • Level: Assisted
  • Human review and validation: Cobb04 defined and reviewed the Issue/spec scope, reviewed RED/GREEN evidence and final findings, approved the contribution workflow, retained primary authorship, and required post-rebase cross-version, native DSH, shared-host, clean canonical, packaging, and attribution verification. AI assisted with research, test design, implementation, review, validation, and PR preparation.

Checklist

  • I followed AGENTS.md, CONTRIBUTING.md, and the relevant canonical-owner guidance.
  • The change is focused and does not include unrelated local or generated state.
  • Tests and documentation match the behavior actually delivered.
  • Markdown links were checked when documentation moved or changed.
  • Cross-platform behavior was considered for Windows, macOS, and Linux.
  • Package/runtime verification was run when shipped files or dependencies changed.
  • User-facing or compatibility changes are recorded in CHANGELOG.md. N/A: the approved [Feature]: Add DSH shared Harness analysis with frozen-cwd Evidence Bundle support #104 spec explicitly excludes changelog/release/version work, and AGENTS.md prohibits adding it without scope authorization.
  • I have the right to contribute this work under the repository's MIT License.

Implements QoderAI#104 using docs/specs/2026-08-24-104-deepseek-harness-shared-analysis-evidence-bundle.md. Qualify DSH for shared Asset Practices, Harness evidence, and Evidence Bundle collection with one frozen canonical cwd while keeping rendering and Checkup out of scope.

Validate the change with Node 22.20.0 and Node 24.15.0 focused suites, native DSH smokes, and a clean npm run check. Existing DSH Session and configured-assets semantics remain unchanged.

Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
@Cobb04

Cobb04 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

Sry, Windows CI exposed a reproducible path canonicalization issue rather than a transient runner failure. The same directory can currently reach the shared analysis path as an 8.3 short path (RUNNER~1) or its long-form path (runneradmin), which then breaks workspace identity, relative-path checks, and Qoder Memory lookup. There is also one independent Windows-only test regex escaping issue.

I’ve isolated the failures and am working on a narrow fix in this PR. No reviewer action needed yet — I’ll push the fix and re-run the full matrix.

Keeps QoderAI#104 configured and practice analysis on one filesystem identity using docs/specs/2026-08-24-104-deepseek-harness-shared-analysis-evidence-bundle.md. Qoder Memory lookup, workspace-relative locators, topology, Git-root resolution, and Baseline compaction now share the same canonical path owner; the Windows-safe privacy assertion no longer constructs a RegExp from a raw path.

Validated with Node 22.20.0 and Node 24.18.0 focused suites, DSH 0.1.1-rc.2 native smokes, and a clean Node 22.20.0 npm run check.

Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
@phodal

phodal commented Aug 24, 2026

Copy link
Copy Markdown
Member

Overall, the architecture and traceability are strong: the shared canonical-cwd owner, Evidence Bundle v3, Asset Baseline v2, exact DSH capability boundary, and configured-not-observed separation all match #104 well. The cross-platform and native DSH CI evidence is also convincing.

I left one blocking inline comment for a reproducible absolute-path disclosure through nested Baseline stage errors. Once that is fixed and covered at the serialized Bundle boundary, I think the implementation is close to review-ready.

Two non-blocking PR-description cleanups:

const lintRunner = dependencies.runLint ?? runAgentLint;
const inventoryRunner = dependencies.collectPublicInventory
?? (provider === "qoder" ? collectQoderInventory : collectProviderInventory);
const pathContext = {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Redact nested Baseline errors before returning bundle data

This path context protects findings and inventory projections, but unavailable stage messages still go through compactError, which copies the raw collector message. The early raw-inventory failure also returns before this context exists. collectAgentCustomize keeps a failed or partial Baseline under lane.data, so an absolute path from a Node error remains visible in the serialized Evidence Bundle even though the top-level lane error is generic.

I reproduced this on b381b58 by making raw inventory throw an error containing an off-tree path: the original path remained in lane.data.envelopes.inventory.error.message. This violates AC-11/AC-12. Please emit a stable bounded stage message, or apply the locator sanitizer to every stage error, and add whole-bundle negative tests for both failed and partial Baselines, including POSIX paths with spaces and Windows paths.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reproduced and fixed the serialized Bundle path disclosure from nested Baseline stage errors. The Baseline/Bundle privacy projection now sanitizes path-bearing error text before failed or partial Baselines reach the final serialized Bundle. Whole-Bundle regressions cover raw-inventory, lint, inventory, and integrity errors across spaced POSIX, Windows drive, and UNC paths; raw absolute paths are absent while stage codes and safe surrounding message context remain.

I also updated the rollback wording and Node 24.x evidence in the PR description. The full PR matrix is green, including Windows / Node 22.20.0.

Fixes QoderAI#104 using docs/specs/2026-08-24-104-deepseek-harness-shared-analysis-evidence-bundle.md AC-11 and AC-12. Serialized Bundle regressions and focused Node 22/24 suites validate nested Baseline stage-error path redaction.

Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
@phodal
phodal merged commit f599328 into QoderAI:main Aug 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Add DSH shared Harness analysis with frozen-cwd Evidence Bundle support

2 participants