ci probe: no dexdiff tests (do not merge)#84
Closed
davekilleen wants to merge 16 commits into
Closed
Conversation
The entire DexDiff surface (6 skills, adoption module, tests, runtime-boundary doc, contract) was untracked in the dex-core working tree with an agent fleet active there: one git clean from deletion. Snapshot as found 2026-06-10 per the DexDiff end-to-end review. Publishing/hardening decisions follow separately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The rescued core/dexdiff_profile_adopt.py imports DEXDIFF_PROFILE_DRAFTS_DIR from core/paths.py, but the contract keys named in docs/dexdiff-runtime-boundary.md were never actually added, so the module could not even be imported (break confirmed in the 2026-06-10 end-to-end review). Adds the five DEXDIFF_* keys, regenerates the shared path contract package, and extends the test fixture vault. Runtime consumers create the draft directories on demand (04-Projects/ is user content and stays unignored-free). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ail loudly Break 1 from the 2026-06-10 review: the adopt path used the dead heydex.ai/api URL (the static Caddy host has no /api routes). The hosted contract lives on api.heydex.ai. Adds the canonical base URL with a DEXDIFF_API_BASE override, a fetch path with a plain-language error taxonomy (network down, profile not found, server error, malformed payload, never silent), handle parsing for @handle and profile URLs, a CLI entrypoint for the deterministic half of /diff-adopt-profile, and v1-summary quality warnings so thin methodologies are flagged before a stranger wastes an adoption on them. 17 tests including a live local HTTP stub. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rofile skill Vaults installed via the heydex.ai bootstrap have the skills but not the unpublished core module, so the deterministic half of /diff-adopt-profile (fetch, validate, save bundle, write adoption log) now travels with the skill as a stdlib-only Python 3.9+ script. Same plain-language error taxonomy and exit codes as the module, refuses to write outside a Dex vault, and a parity test asserts byte-identical artifacts against core/dexdiff_profile_adopt.py so the twins cannot drift silently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ix diff skills Audit per the 2026-06-10 review: diff-adopt-profile pointed at the dead heydex.ai/api host (break 1), now api.heydex.ai with the bundled script as the deterministic fetch/save step and verbatim plain-language failure relays (not found / network / malformed / thin-v1 payload / wrong folder). diff-adopt no longer WebFetches the React app shell, hosted references resolve to GET api.heydex.ai/api/diff with explicit failure messages and a thin-methodology stop. diff-list and diff-remove now read both adoption-log locations (single-workflow .dex/adoptions/ and whole-profile System/.dex/adoptions/profiles/), so profile adoptions are no longer invisible to the management commands. diff-profile URL copy fixed to heydex.ai/diff/@handle/. Runtime-boundary doc states the page-host vs API-host split explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…de application The vault's Stop-event hook JSON.parsed the whole transcript file, but Claude Code transcripts are JSON-Lines, every real transcript threw on parse, the catch swallowed it, and delight capture recorded nothing for 10 weeks (proven in the 2026-06-10 review). The live file belongs to the Vault, which this branch treats as read-only, so the corrected hook is staged here with a zero-dependency test suite: JSONL parsed line by line, legacy array transcripts still supported, content-block text extraction, tool_result blocks excluded so file contents cannot fake delight, and milestone detection no longer unreachable behind the empty-messages early exit. 8/8 assertions pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…he skill description Skill selection runs on name+description, and the keynote depends on a stranger typing the natural-language phrase rather than the slash command. Put the literal trigger phrase and the handle mapping in the frontmatter description. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
House rule: no em dashes in any authored output. Cleans the files this branch authored (module, skill script, staging fix, my added lines in the six skills and the runtime-boundary doc). Pre-existing rescued text and the preserved original lines in the staged vault hook are untouched for byte-faithful review. All suites re-run green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- diff-generate gains scripts/publish_diff.py: stdlib-only link (code redeem to ~/.dex/heydex-auth.json, 0600) and publish (full-fidelity methodology YAML to a heydex review session, browser handoff, status polling) - SKILL.md documents the optional publish step in plain language - all printed and documented profile URLs use /diff/<handle>/ without the @; mentions and command arguments keep the @ - pytest coverage for metadata extraction, auth staleness, payload fidelity, and the published URL format Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Removes maintainer-only routing/commercial/PUBLIC-distributable notes wrapped in an HTML comment at top of CLAUDE.md. Already absent from origin/release (PR #69) and origin/main; clears it from local main to prevent re-leaking on a future push.
Six diff-* skills, the tested profile-adopt module + scripts, path contract keys, runtime-boundary doc, staged delight-capture fix. This branch lived only on one laptop since June — landing it retires the loss risk flagged in the relaunch plan (U15). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MhjZq5oxB1bjez4PoEgqi3
…sktop chat The desktop chat lane blocks Bash; dex-desktop's dexdiff-mcp server (dexdiff_fetch_bundle / dexdiff_write_adoption) now carries the deterministic halves there. Terminal path unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MhjZq5oxB1bjez4PoEgqi3
.claude/skills/*/scripts/ run in end users' vaults where dex-core is not installed — they cannot import core.paths by design. (Trips on the diff-adopt-profile bundled script landing in this PR.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MhjZq5oxB1bjez4PoEgqi3
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Bisecting #81's ritual failures: whole branch minus the three new test modules. Red → trigger elsewhere; green → the new test modules pollute the shared suite at run time.