Releases: TheArcForge/Hades
Releases · TheArcForge/Hades
Hades v1.0.0 — Public Release
The first public release: Phase 10 release/distribution infrastructure plus a graph relationship & coverage correctness round driven by field reports from a large Addressables-heavy project. The correctness work treats the scanner/graph as ground truth and adds honest signals where a gap is inherent (precompiled DLL types, runtime dispatch).
Added
- Self-hosted marketplace listing (
marketplace.jsonin plugin repo) - CI workflow for Bridge + Scanner tests on push/PR (
ci.yml) - CI workflow for auto-syncing plugin repo on release tag (
release.yml) - Plugin repo structural validation CI (
validate.yml) - Release documentation:
ReleasePipeline.md,plugin-publish-pipeline.md,anthropic-plugin-reference.md - Marketplace install path documented in
plugin-README.md nested_byonfind_references_to— surfaces direct structural parents (nesting prefabs, prefab variants) separately fromreferences, so a nested-only asset no longer reads as "unused" whilereference_countstays free of transitive over-count- Honest coverage signals on relationship tools —
static_analysis_coverage(names reflection / runtime dispatch / DI blind spots),package_scandegraded, andsupertypes_external_unresolvedcounts onfind_references_to/trace_dependencies/ inheritance queries package_scan_statusflag inscan_health(get_project_summary)- Scene→prefab
instantiatesedge —find_references_to(prefab)now surfaces scenes that instantiate it kindproperty onScriptTypenodes (class / struct / interface / enum / record)
Changed
- Renamed
Skills~/→skills/andCommands~/→commands/(Anthropic standard auto-discovery paths) - Enriched
plugin.jsonwith$schema,displayName, author object,license,homepage,repository,keywords - Removed explicit
"skills"and"commands"fields fromplugin.json(now auto-discovered by convention) - Version bumps: product
0.9.5→1.0.0; Bridge, Hub, and Scanner internals to1.0.0 - C# parser now emits
ScriptTypenodes for enums, records, and nested types (restores coverage lost in the Phase-9 tree-sitter swap); capturesusing-aliases and generic method-invocation / property / generic-return type arguments; replaces thebase_typenode property with asupertypeslist inherits_fromvsimplementsis decided by the resolved supertype's kind, not base-list position (fixes missed first-party interfaces)find_prefabs_with_componentwalks the full containment chain (finds deeply-nested component hosts) and de-dups variant-inherited components (countexcludes inherited;total_including_inherited_variantsreported)- Package-tier scan is non-destructive on failure (scan-then-reconcile instead of delete-then-rescan); longer package-tier timeout
- Addressable group→member edge so addressable groups surface as referrers of their members
Fixed
trace_dependenciesno longer reports the queried file's own methods as dependenciesfind_references_tono longer over-counts via structural/transitive prefab edges, and no longer merges referrers of co-located sibling types into a.csqueryfind_components_using_patternreads the newsupertypesproperty (was silently broken by thebase_typeremoval)- Inference
NullReferenceExceptionon every rebuild after the first (PatternInferenceEnginedereferenced a never-persistedTargetFile); guarded, and the catch now logs the full exception - Test isolation — EditMode tests no longer leave the live
GraphDatabasesingleton null after a run (they save/restore it), so the graph stays queryable post-test
Fixed — field-fix batch (large Addressables project)
- Rebuild-path unification — the
Hades → Rebuild Graphmenu ran a divergentRebuildAllthat skippedScanProjectSettings/ScanAddressables(and the Node C# scan), so menu rebuilds produced 0AddressableGroup/ 0RenderPipelineAssetnodes. Collapsed all entry points ontoRebuildParallel; removed deadRebuildAllChunked. - Addressable group membership —
AddressableAssetGroup.entrieswas castas IList(aDictionary.ValueCollection, always null) → every group orphaned. Cast toIEnumerable; entries +addressable_foredges now populate and match the group.assetfiles. - Deferred-edge property loss —
pending_edgesgained apropertiescolumn (schema v3, additive migration); a forward-reference edge now keeps its{field}/{addressable:true}enrichment through deferral instead of resolving withNULLproperties. AddressableEntrypath collision — entries no longer setPathto the real asset's path (kept inproperties.asset_path); fixes path resolution /trace_dependencieslanding on the entry instead of the asset.- Incremental edge erosion (Unity + C#) — re-scanning a changed asset cascade-deleted inbound edges from unchanged assets, which were never recreated and eroded each incremental. Inbound edges are now captured before delete and re-pointed after re-scan; the C# scanner deletes a file's full node set by
file_id(was leaking NULL-guidScriptType/ScriptMethodnodes). - Pending-edge classification — on a full pass, unresolved type-name edges (BCL/framework/attributes/generics/unscanned-package types) are now classified terminal (
external/unindexed) instead of being logged "will resolve on next rebuild." query_graphguardrail — an unknownfromnode type now errors and lists valid types instead of silently returningcount:0.