DD-338 Phase B.1.b — HA/tailscale/syncthing catalog flips #20
No reviewers
Labels
No labels
boundary:crosses
boundary:none
bug
devfu
documentation
duplicate
enhancement
epic
good first issue
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
svd:fire
svd:go
svd:hold
svd:respec
svd:skip
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Stallari/plugins!20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/dd-338-b1b-ha-ts-st"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Catalog declaration flip paired with three blade-mcp PRs landing handler-level canonical sort-before-return on 16 multi-record tools per DD-338-implementation-plan § Phase B.1.b:
What changed
All 16 catalog rows flip
granularity.deterministic_ordering: unsorted | unstable → stable. Each tool description appended with a(Track 2 — canonical sort on <key>.)suffix documenting the contract for assemblers.Catalog version bumps mirror the per-blade pyproject minor bumps:
home-assistant-blade-mcp.json:0.2.0 → 0.5.0(mirrors HA pyproject0.4.0 → 0.5.0; collapses prior drift)tailscale-blade-mcp.json:0.1.1 → 0.4.0(mirrors tailscale pyproject0.3.0 → 0.4.0; collapses prior drift)syncthing-blade-mcp.json:0.5.0 → 0.6.1(mirrors syncthing pyproject0.6.0 → 0.6.1)Catalog versions and pyproject versions had drifted under prior DD-338 A.1 / A.2.dom.c work; this commit brings them into alignment with the new pyproject versions (per spec § 4 "mirrors pyproject minor bump").
Verification
deterministic_ordering: stable(verified — 0 remaining instances ofunsortedorunstableacross the 3 JSON files).npm testgreen: 164/164 passed (14 skipped, 0 failed; out of 178 total cases across 21 suites).Architect OQ resolutions honoured
ha_search): outer item-type traversal order preserved; inner per-type lists sorted.ha_devices): canonical sort by device id (id-canonical, not friendly_name).ts_users): case-folded loginName primary sort key.Merge order
No merge-order dependency with the 3 blade-mcp PRs. The catalog flip is honest at any point after at least one blade-mcp PR merges; intermediate states are "over-providing" (stable declared but unsorted shipping) which is recoverable rather than a violation.
Test plan
npm testgreen on worktree🤖 Generated with Claude Code