fix/feat: real DSH home, linear canonicalization, legacy Skill import - #159
Closed
titanwings wants to merge 3 commits into
Closed
titanwings wants to merge 3 commits into
titanwings wants to merge 3 commits into
Conversation
added 3 commits
September 11, 2026 07:47
…long runs An independent audit of the previous splitter fix found three defects: a file with a long run of spaces or tabs never returned (the canonicalization regular expression backtracked over the run, in the splitter and in the engine's own normalizer), a cut inside a space run silently dropped the spaces the engine then stripped, and a whitespace run longer than a material failed the whole ingest call with a bare canonicalization error. Canonicalization is now one shared linear scan in the engine, the splitter cuts around space runs instead of trimming them, and a run no legal part could hold is refused per file so the raw evidence is kept with a printed warning. Harvest now prints the parser warnings it used to swallow. DSH installs were also unreachable: the CLI treated the user home as the DSH home, mapped the host to the wrong plugin source, and rejected the profile DSH itself composes. Installs now land in DSH_HOME, read plugins/dsh, and treat the host's own composed cordis.yml as expected.
People who used the older Skill release keep each person as a folder of Markdown beside a meta.json descriptor, usually nested one category below a skills root. Nothing read that layout, so an upgrade meant starting over. import reads a single person directory or a whole legacy skills tree, creates or reuses one subject per person (using the descriptor name and keeping the slug as an alias), and ingests every supported file as evidence, reusing the harvest path so the same already-ingested record, batching, and per-file reporting apply. The legacy directory is only read.
…ne-readable An independent audit of the import command found that a shared meta.json.slug silently merged a second person into the first subject, that --name discarded the legacy slug alias, that --json interleaved human progress with the JSON, and that an over-long legacy name failed with a raw boundary error. A conflict is now only treated as the same person when the engine matched the display name that was asked for; an alias match for a different name is refused with the conflicting value named and nothing stored. Aliases survive --name, an exact-name match says which directory it absorbed, --json prints JSON only, an over-long name is reported with the byte limit, category directories no longer swallow the people below them, and every skipped file is listed by name.
Owner
Author
|
Superseded: this stacked series is consolidated into the |
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.
What
fix/feat: real DSH home, linear canonicalization, legacy Skill import
Commits
Stack
Stacked on
pr/09-versions-and-person-skill; the whole series ends atdistilly-work(0bd924e).Verification
Every feature carries an author report and an independent audit in the delivery evidence folder (
host-verification/), including screenshots and the audit verdict that drove the fixes. Gates on the top of the stack: format, lint, docs, release check, and 1163 tests.Real hosts
Codex, Claude Code 2.1.268, OpenClaw 2026.9.2, Hermes v0.19.0, and DSH 0.1.5-rc.1 were each exercised end to end (install, host-visible confirmation, exactly five MCP tools, person Skill install/remove, uninstall). Capacity fixtures are recorded for Codex 0.146.0, OpenClaw 2026.3.24, and Hermes v0.9.0; newer host versions run on the labelled conservative floor.
Evidence
Author reports and screenshots (delivery evidence folder
host-verification/):Independent audit reports: