Releases: mycelium-cmbse/mycelium-hypha
Release list
hypha v2.1.2
Fixed
- The
SessionStarthook no longer throws a raw PowerShell parse error on Windows without Git
Bash (fixes #139). Its dispatch shim is POSIX-shell-only (case/esac,uname), and Claude
Code falls back to PowerShell for shell-form hooks when Git Bash isn't found, which can't parse
it. The hook now pins"shell": "bash", so Claude Code either runs it under Git Bash or reports
a clear, dedicated "shell not found" error instead - making the project's existing Git Bash
dependency explicit rather than reimplementing the OS/arch dispatch in a second language. No
behavior change on Linux/macOS/Windows-with-Git-Bash, where bash was already the default.
Install / update: /plugin marketplace update → /reload-plugins.
Full changelog: v2.1.1...v2.1.2
hypha v2.1.1
Fixed
/overviewno longer tells users to manually download the OMG spec PDFs or manually run
tools/spec-extract(fixes #135). Both are automatic now (hypha fetch/hypha generate'sspec
artifact, #129); the command's own instructions had gone stale.
Install / update: /plugin marketplace update → /reload-plugins.
Full changelog: v2.1.0...v2.1.1
hypha v2.1.0
Added
hypha generate's newspecartifact quotes verbatim OMG spec text without a maintainer source
checkout (fixes #129, tools1.3.0).SpecGeneratorfetches and caches
uv, which resolves or fetches a matching Python itself and runs
tools/spec-extract(Python/pdfplumber) through it - no pre-existing Python or provisioned.venv
needed. A C# port of the pipeline was evaluated first (the PdfPig comparison spike, #128) and
rejected: even after fixing a real bug, it still fell short of the mature Python pipeline's quality,
and a port can at best tie Python, never beat it.tools/spec-extractalso gained a real CLI entry
point (python -m spec_extract) alongside its existing pytest-driven maintainer flow.
Install / update: /plugin marketplace update → /reload-plugins.
Full changelog: v2.0.0...v2.1.0
hypha tools 1.3.0
hypha 1.3.0
Install as a dotnet tool:
dotnet tool install --global Hypha.Tools --version 1.3.0Or download the self-contained build for your platform below - it bundles the .NET
runtime, so nothing needs installing.
Each archive (and the .nupkg) carries an SPDX 2.2 SBOM under _manifest/.
| asset | SHA256 |
|---|---|
hypha-1.3.0-linux-x64.zip |
3d08a88a9177ef75a527a2f109d554d0eb182a1dad2ce7647d81fe0bcb61771d |
hypha-1.3.0-osx-arm64.zip |
a975cd0218ed0558881d0a157d34b4f53df2898e752382ef8b9556994604fd17 |
hypha-1.3.0-osx-x64.zip |
02bd2ae9266934c1ee1e66c5030c4928d6c4a634d9427f2d97972352f74a2db5 |
hypha-1.3.0-win-x64.zip |
39cdffc3fd857e9a3098d7b3450a70b7eb9241a248b30b03c9c4f7a7bfc481b2 |
hypha v2.0.0
Removed
- The committed knowledge floor (
fixes #106).knowledge/2026-04/,knowledge/2026-05/,
sources/2026-04/,sources/2026-05/andknowledge/versions.jsonare no longer committed to git -
2,120 files. Part 1 (hypha use/remove/check, below) landed the interactive mechanics while this
floor still existed, so they could be verified before anything was deleted; this closes #106 by
deleting it. A plugin install now fetches and generates every release identically, entirely on the
user's own machine, on request - not two privileged releases pre-installed and everything else
second-class.
Changed
.gitignore,CLAUDE.md,README.md,sources/README.mdandknowledge/README.mdrewritten
for the no-committed-floor model (fixes #106):/sources/*/and/knowledge/*/are now
root-anchored git-ignore patterns covering everything per-release, not just the OMG PDFs and their
extracted text.Hypha.MetamodelGen.Testsreads a committed test fixture instead ofsources/<tag>/xmi/
(fixes #106): one real release's XMI is committed under
tools/metamodel-gen/Hypha.MetamodelGen.Tests/Fixtures/xmi/- a fixture for this test project alone
(tools/is never shipped with the plugin), so the generators still have real regression coverage
without a network fetch or a reintroduced distributed knowledge floor. The accepted consequence:
only that one fixture release is exercised, not every installed release, since nothing per-release
is committed to loop over any more.KnowledgeRegenerationTests,MetamodelJsonGoldenTests,MetamodelJsonInvariantTestsand
PackageDiagramGoldenTestsredesigned (fixes #106): with no committedknowledge/<tag>/left to
diff against,KnowledgeRegenerationTestsnow fetches one release fresh and asserts two independent
regenerations are byte-identical to each other (self-consistency, not a match against a
human-reviewed baseline - a real reduction in rigor, named as such in its own doc comment); the
metamodel-gen golden tests moved to the same committed-Expected/-fixture pattern
MetaclassFileGoldenTestsalready used.hypha move-window(refs #106) is now documented and commented as the maintainer-only,
source-checkout-only convenience it always functionally was, not a way to move a committed rolling
window - its--keepcount only ever governed which releases stay installed locally.
Added
hypha use,hypha removeandhypha check(refs #106) replacehypha sync: switching the
default release, removing one no longer wanted, and comparing installed releases against what is
offerable upstream are now separate, always-safe-to-run verbs instead of one verb that silently
fetched and generated the newest release automatically.- The
version-managementskill gives Claude the vocabulary to list local vs. online releases,
fetch a chosen tag with visible progress, switch the default, or remove one - always confirming
with the user first, since fetching costs real time and removing is destructive. hypha fetchdownloads the OMG specification PDFs by default now (--no-specsto opt out) -
a fully local install needs everything a plain HTTP call can get it.
- The
Changed
- The plugin's
SessionStarthook only ever compares now - it never fetches or generates anything
itself (refs #106).Hypha.Tools.Hookrunshypha check --jsonsynchronously (cheap enough - a
couple of GitHub API calls - that no background process is needed) and reports what it finds:
nothing installed yet, a newer release available, or nothing to report - leaving the decision to
fetch entirely to the user. The same hook also folds in whathooks/check-spec-pdfs.pyused to do
separately (naming missing OMG PDFs for the default release), so the plugin needs one
SessionStarthook instead of two, and no longer depends on Python being present just to run it. - The
SessionStarthook now also runs onresume, not onlystartup(refs #117). A resumed
session (claude --resume/--continue) used to skip the check entirely;plugin.json's matcher is
nowstartup|resume, so a long-running or resumed session still gets a fresh comparison against
what's offerable upstream.
Removed
hypha syncand the background/lock/status-file machinery it needed (refs #106). Detached
launching, a file lock, and a polled status file existed only because a hook-triggered fetch had to
return immediately and report progress later; once fetching is something the user asks for and
Claude runs in the foreground, none of that indirection is needed.hooks/check-spec-pdfs.pyis
retired, folded intoHypha.Tools.Hook.
Added
hypha, a distributable command-line tool, is now what generates the knowledge base
(fixes #81). It ships as adotnet toolfor anyone with the .NET 10 SDK and as a
self-contained executable per platform (win-x64,linux-x64,osx-x64,osx-arm64) for
anyone with no toolchain at all – which is the answer #77 needed to the question of what happens
when the toolchains are absent. NativeAOT is deliberately out of scope: Handlebars.Net compiles
templates at runtime through expression trees, and uml4net is reflection-heavy over XMI.- Four verbs:
discover(what the upstreams offer),fetch(download a release intosources/
and record it),generate(the knowledge base) andlist(what this checkout carries). generatetakes an optional artifact name, and the names are not a list it holds: they are the
Artifactof whateverIKnowledgeGeneratorimplementations are registered, so adding a
generator adds its verb andgenerate nonsensereports the ones that exist.ReleaseInstallergives fetching the orchestration generation already had: it downloads a
release's inputs, resolves both upstream commits and merges the result intoversions.json. The
manifest is written only once the downloads finish, so an interrupted fetch leaves a release
unrecorded rather than recorded and half-present.- A Release workflow packs the tool, publishes the four self-contained builds, generates
THIRD-PARTY-NOTICES.txtfor the bundled closure and drafts atools-vX.Y.Zrelease. The tool
and the plugin version independently.
- Four verbs:
Changed
- The tests no longer write the knowledge base; they verify it (
fixes #81). Running
dotnet testused to rewriteknowledge/, which made every test run a write to the repository and
made "is the working tree clean afterwards?" a check you had to remember to perform. Generation is
hypha generate's job now, and a test run leaves the working tree clean.KnowledgeRegenerationTestsregenerates the whole knowledge base into a scratch folder and
compares it byte for byte against the committed files – the same determinism proof, without
touching a tracked file. All 1,090 files match.- The seam is
HyphaKnowledgeOptions.OutputRoot(the CLI's--output): inputs are still read from
the repository, only the output moves.knowledge/<tag>/spec/stays on the input side, because
the Python PDF chain writes it and the cross-references read it. Hypha.Knowledge.Testswent from 30s to 3s, having stopped doing the generation work twice.
- Generation orchestration moved out of the test fixtures and into the library (
refs #92). Each
artifact is now anIKnowledgeGenerator–Artifact,Order,GenerateAsync(tag)– registered as
a collection, so regenerating a release is a loop overOrderrather than a list of calls each
caller had to keep in step. The knowledge base comes out byte-identical.KnowledgeLayoutreplaced three separate copies of the repository layout that had grown up in the
test projects, one per project plus a private one inside a fixture.- Two fixtures now write the committed knowledge base instead of seven; the rest assert on scratch
output, so changing one of them can no longer rewrite what ships. - Three invariants moved from assertions in tests into the generators, where they hold for every
caller: a clause title must never reach the cross-references, two models must never slugify to the
same example page, and the textual notation refuses to run before the metamodel index exists. HyphaKnowledgeOptionsreplaces the optional parameters that were accumulating on
AddHyphaKnowledge– token, API host, raw-content host, repository root, download concurrency –
and is validated at registration rather than at first use. It is where the CLI's flags will land.- Every generator takes an
ILoggerand reports the same three messages, so a host can show
progress without knowing which generator it is watching. That is the seam #77 needs. ReleaseDiscovery,CommitResolverandReleaseFetcherare resolved by interface like
everything else.
Fixed
- The cross-references no longer degrade silently on a new release tag (
fixes #96). The PDF-free
rebuild added in #88 carries title-matched clause edges forward from the committed document, which
is lossless – except for a tag that has neither a clause catalog nor a previous document, where it
wrote a file with roughly a third of its clause edges missing and nothing failing.Buildnow
refuses that combination and names both ways out;AllowGrammarOnlystates that a grammar-only
document is intended.
Changed
- The cross-references moved to .NET, and no longer need the OMG PDFs (
fixes #88).
Hypha.Knowledge.CrossReferenceswritesknowledge/<tag>/cross-references.jsonbyte-identically to
the Python it replaces, and this completes the port (fixes #82): .NET now produces every
committed artifact.cross-references.jsoncan be rebuilt from committed sources alone. 351 of its 546 clause
edges are stated outright ...
hypha tools 1.2.0
hypha 1.2.0
Install as a dotnet tool:
dotnet tool install --global Hypha.Tools --version 1.2.0Or download the self-contained build for your platform below - it bundles the .NET
runtime, so nothing needs installing.
| asset | SHA256 |
|---|---|
hypha-1.2.0-linux-x64.zip |
e2baf23c5b9a5a86f0267f578a1d128783a3ad192c328acadaead205cb93d026 |
hypha-1.2.0-osx-arm64.zip |
06c0cc84451202746cc820a7c8539c1674f676c10d3810dd4e90a1c512018e71 |
hypha-1.2.0-osx-x64.zip |
9176c9021d6e7c5cd97158302ad74b716329154be8ca67b84e16e92d9dca7cfc |
hypha-1.2.0-win-x64.zip |
ffdc0dabda376fea788083cbb08384fdc39a381110c08ec90f01d6733cde760c |
hypha v1.1.0
Changed
- Bumped
uml4net(uml4net.xmi,uml4net.Extensions,uml4net.Reporting)8.1.2→8.2.1, which reads the previously-missing subsetting information from the XMI. Regenerated the metamodel knowledge base accordingly (knowledge/metamodel/): several element files andmetamodel.jsonnow carry the completeSubsetssets (fixes #62). - Interesting-metaclass selection (used for the generator golden fixtures) now folds in operation argument/return-type variations, broadening test coverage (
fixes #63).
Install / update: /plugin marketplace update → /reload-plugins.
Full changelog: v1.0.0...v1.1.0
hypha v1.0.0
First tagged release of Hypha — the SysML v2 / KerML agent of the Mycelium ecosystem.
Install
/plugin marketplace add mycelium-cmbse/mycelium-hypha
/plugin install hypha@mycelium
The plugin is pinned to this tag (v1.0.0), so installs resolve to this exact commit.
Added
- Initial Claude plugin scaffolding (
.claude-plugin/plugin.json, marketplace manifest). - Skills:
metamodel-lookup,spec-citation,sysml-validation. - Subagents:
metamodel-navigator,spec-citation,sysml-validator. - Knowledge-base layout (
knowledge/) for KerML/SysML v2 metamodel elements, normative spec excerpts,
and textual-notation examples. - Source-document layout (
sources/) for OMG XMI and PDF specifications. - Generation pipelines layout (
tools/): C#/uml4net metamodel generator and Python PDF spec extractor.
Changed
- Renamed the metamodel knowledge folder
knowledge/sysml2/→knowledge/metamodel/(consistent
content-type naming alongsidespec/andtextual-notation/, and no longer overloaded with the
knowledge/spec/sysml2/clause folder).
Full changelog: CHANGELOG.md