Skip to content

ci probe: no dexdiff tests (do not merge)#84

Closed
davekilleen wants to merge 16 commits into
mainfrom
ci-probe-no-dexdiff-tests
Closed

ci probe: no dexdiff tests (do not merge)#84
davekilleen wants to merge 16 commits into
mainfrom
ci-probe-no-dexdiff-tests

Conversation

@davekilleen

Copy link
Copy Markdown
Owner

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.

davekilleen and others added 16 commits May 15, 2026 17:56
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>
@davekilleen davekilleen closed this Jul 6, 2026
@davekilleen davekilleen deleted the ci-probe-no-dexdiff-tests branch July 6, 2026 10:41
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.

1 participant