UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

934 lines 49 kB
{ "manifest": { "schema": "ruflo-witness/v1", "issuedAt": "2026-05-12T14:43:24.488Z", "gitCommit": "3975ab512c79b86def0222bf6a1c405599417d6b", "branch": "release/3.7.0-alpha.27", "os": "macos", "releases": { "ruflo": "3.7.0-alpha.27", "claude-flow": "3.7.0-alpha.27", "@claude-flow/cli": "3.7.0-alpha.27", "@claude-flow/memory": "3.0.0-alpha.15" }, "summary": { "totalFixes": 113, "verified": 113, "missing": 0 }, "fixes": [ { "id": "F1", "desc": "hooks_metrics persistence", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js", "sha256": "93f4d2f94710eed90e0bcc9b8823e91f1a4b894221fae1972c1f6745d90b622d", "marker": "getIntelligenceStatsFromMemory", "markerVerified": true }, { "id": "F2", "desc": "worker-dispatch honesty", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js", "sha256": "93f4d2f94710eed90e0bcc9b8823e91f1a4b894221fae1972c1f6745d90b622d", "marker": "'no-daemon'", "markerVerified": true }, { "id": "F3", "desc": "hive-mind consensus schema + persistence", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js", "sha256": "8482312f5b447ae6008d13b0873945f026bf540e559195cf961b948a94520678", "marker": "consensusStrategy", "markerVerified": true }, { "id": "F4", "desc": "agentdb_pattern-store memory-store fallback", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js", "sha256": "666141cf59c2e75c9f65fe50eff85076a96d820bddceaba79c0b67a4469b3bb5", "marker": "memory-store-fallback", "markerVerified": true }, { "id": "F5", "desc": "embeddings_status structured ruvectorStatus", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js", "sha256": "48032e13d70927a6448d75e04f8f055b0268aaada8bef3e6926bf3acafd493fd", "marker": "ruvectorStatus", "markerVerified": true }, { "id": "F6", "desc": "session_list dual-shape handling", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js", "sha256": "159365d8f876d52b94a3c1420e9ac3e6da442a4d0fa0bcd6de292b6282113cee", "marker": "s.sessionId || s.id", "markerVerified": true }, { "id": "F7", "desc": "coordination_orchestrate honest stub", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js", "sha256": "ae4b5e05735741b01cbc6c9e4af3953a02b4ebf78faf78fe06f9130420f4f301", "marker": "executor: 'none'", "markerVerified": true }, { "id": "F8", "desc": "performance_metrics real measurements", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js", "sha256": "8151d83f6b1abe7a9139db5c9d884c42c1b3faf986dc712c0fbd43a22af39f51", "marker": "process.hrtime.bigint", "markerVerified": true }, { "id": "F9", "desc": "F9 router probe + actionable error", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "IntentRouter", "markerVerified": true }, { "id": "F10", "desc": "intelligence_attention real patterns", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js", "sha256": "93f4d2f94710eed90e0bcc9b8823e91f1a4b894221fae1972c1f6745d90b622d", "marker": "real-flash-attention+memory", "markerVerified": true }, { "id": "F11", "desc": "neural_predict classifier head", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js", "sha256": "acb66c459f9eb3a34686567b5d4f9bd834b4e874e9a1229256baebfd15c4ea5c", "marker": "knn-cosine+softmax", "markerVerified": true }, { "id": "F12", "desc": "config_list union with source labels", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js", "sha256": "0c68ebca896806de2aa052ef44a0de13e9df3becef44721857c7c99567403d80", "marker": "merged.set", "markerVerified": true }, { "id": "#1697", "desc": "rvf-wasm overrides", "file": "package.json", "sha256": "f054233b90811bb2caa19c186a4b850e09b1d65912972f18982a920b73780b3b", "marker": "@ruvector/rvf-wasm", "markerVerified": true }, { "id": "#1698", "desc": "HNSW init fix in CLI command", "file": "v3/@claude-flow/cli/dist/src/commands/embeddings.js", "sha256": "2cb57b6fb38bb4722eebd169f4b6056f1b6f69ba0adde9978bcd9e03f83d43ab", "marker": "getHNSWIndex", "markerVerified": true }, { "id": "#1691", "desc": "Windows daemon fork()", "file": "v3/@claude-flow/cli/dist/src/commands/daemon.js", "sha256": "6b600ec62ef9a3898fd3c606c23034a10a005c0330d0dac43b29f6d2abc2ec8e", "marker": "fork(cliPath", "markerVerified": true }, { "id": "#1721", "desc": "postinstall copies all dist/src/* siblings", "file": "v3/@claude-flow/cli/package.json", "sha256": "9d8b24743c09a6f60371150207edd60a05ce393a67137c69d62e27b1d3e16c75", "marker": "postinstall.cjs", "markerVerified": true }, { "id": "ADR-094", "desc": "transformers loader try-prefer-fallback", "file": "v3/@claude-flow/embeddings/dist/transformers-loader.js", "sha256": "1d2225e7422f8a2d47d39100324d5e4ac2d29c55e8e72b02f5e4a7a113d45be2", "marker": "@huggingface/transformers", "markerVerified": true }, { "id": "G1", "desc": "agent_execute wires Anthropic Messages API", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.js", "sha256": "2bc49c38b14d43a0329bf5d84913528851ef1c48ab32b8c8c1c40f83c062fc7f", "marker": "callAnthropicMessages", "markerVerified": true }, { "id": "G3", "desc": "workflow runtime task/wait/condition", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js", "sha256": "442839dca2d6177f2567dccaf1f48306c304cbca0659c477501604289f7ad5a6", "marker": "executeAgentTask", "markerVerified": true }, { "id": "G4", "desc": "WASM agent prompt routes to Anthropic", "file": "v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js", "sha256": "12fce07f6458aff5db210b0ba50104fa9b2dd52c85b5e9071b48c2899451c631", "marker": "isEchoStub", "markerVerified": true }, { "id": "G6", "desc": "auto-memory content-hash dedup", "file": "v3/@claude-flow/cli/.claude/helpers/intelligence.cjs", "sha256": "84a6159b384b8118f0beaa1089c417cab6d1116cd77d3882a607715ef7679ea8", "marker": "deduplicateByContent", "markerVerified": true }, { "id": "G7-gnn", "desc": "gnnService activated", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "GNNService", "markerVerified": true }, { "id": "G7-rvf", "desc": "rvfOptimizer activated", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "RVFOptimizer", "markerVerified": true }, { "id": "G7-mut", "desc": "mutationGuard activated", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "MutationGuard", "markerVerified": true }, { "id": "G7-att", "desc": "attestationLog activated with sqlite db", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "attestation.db", "markerVerified": true }, { "id": "G7-gvb", "desc": "GuardedVectorBackend wraps mutationGuard+log", "file": "v3/@claude-flow/cli/dist/src/memory/memory-bridge.js", "sha256": "12ca47650a812c66fb5efbbc3b6cdf527ca74ee787f27c9556514492de9d07cd", "marker": "GuardedVectorBackend", "markerVerified": true }, { "id": "G2", "desc": "federation real Ed25519 signing/verification", "file": "v3/@claude-flow/plugin-agent-federation/dist/plugin.js", "sha256": "9f751aaee838a85e7b2371bbd73dccb5cb89c6b7751496b18d33d8b8a559de19", "marker": "@noble/ed25519", "markerVerified": true }, { "id": "CAP-MCP-agent-tools", "desc": "MCP tools (8): agent_execute, agent_health, agent_list, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js", "sha256": "a182a61809b5480e9eb4139ed8fa3b8e471201d338be4e086578b4e2e325302a", "marker": "agent_execute", "markerVerified": true }, { "id": "CAP-MCP-agentdb-tools", "desc": "MCP tools (15): agentdb_batch, agentdb_causal-edge, agentdb_consolidate, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js", "sha256": "666141cf59c2e75c9f65fe50eff85076a96d820bddceaba79c0b67a4469b3bb5", "marker": "agentdb_batch", "markerVerified": true }, { "id": "CAP-MCP-analyze-tools", "desc": "MCP tools (6): analyze_diff, analyze_diff-classify, analyze_diff-reviewers, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.js", "sha256": "d665ca78dcb753e7803d37a331ae363ba5e4fea0c90e828171d264a425a638da", "marker": "analyze_diff", "markerVerified": true }, { "id": "CAP-MCP-autopilot-tools", "desc": "MCP tools (10): autopilot_config, autopilot_disable, autopilot_enable, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/autopilot-tools.js", "sha256": "1f1dcf3c7660b9ab66df49bacfdf2c7f5a883554d98b416a2780d5226e643df2", "marker": "autopilot_config", "markerVerified": true }, { "id": "CAP-MCP-browser-tools", "desc": "MCP tools (23): browser_back, browser_check, browser_click, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.js", "sha256": "5ea5f63c99ee22bccb6fbd4d872e44f47ec7f0ad14ceed4f18014b95f94f75f7", "marker": "browser_back", "markerVerified": true }, { "id": "CAP-MCP-claims-tools", "desc": "MCP tools (12): claims_accept-handoff, claims_board, claims_claim, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.js", "sha256": "89908d601a21e1a0dca0bd611af61b1d2150010f6015216849122775e6940808", "marker": "claims_accept-handoff", "markerVerified": true }, { "id": "CAP-MCP-config-tools", "desc": "MCP tools (6): config_export, config_get, config_import, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js", "sha256": "0c68ebca896806de2aa052ef44a0de13e9df3becef44721857c7c99567403d80", "marker": "config_export", "markerVerified": true }, { "id": "CAP-MCP-coordination-tools", "desc": "MCP tools (7): coordination_consensus, coordination_load_balance, coordination_metrics, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js", "sha256": "ae4b5e05735741b01cbc6c9e4af3953a02b4ebf78faf78fe06f9130420f4f301", "marker": "coordination_consensus", "markerVerified": true }, { "id": "CAP-MCP-daa-tools", "desc": "MCP tools (8): daa_agent_adapt, daa_agent_create, daa_cognitive_pattern, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/daa-tools.js", "sha256": "2beb8ec07d784cf7f1a61b4cd2090a8e65934893c2a31a3afcd406774d2a8537", "marker": "daa_agent_adapt", "markerVerified": true }, { "id": "CAP-MCP-embeddings-tools", "desc": "MCP tools (10): embeddings_compare, embeddings_generate, embeddings_hyperbolic, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js", "sha256": "48032e13d70927a6448d75e04f8f055b0268aaada8bef3e6926bf3acafd493fd", "marker": "embeddings_compare", "markerVerified": true }, { "id": "CAP-MCP-github-tools", "desc": "MCP tools (5): github_issue_track, github_metrics, github_pr_manage, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/github-tools.js", "sha256": "951b66082ba309505eaf4e3588104681f5581ec5e0c8d6daf6a7befac596db37", "marker": "github_issue_track", "markerVerified": true }, { "id": "CAP-MCP-guidance-tools", "desc": "MCP tools (5): guidance_capabilities, guidance_discover, guidance_quickref, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/guidance-tools.js", "sha256": "856f7b0439a4dfdafab88589faf5cbe42c8fbd4004532fe507ec3e3e42af9e12", "marker": "guidance_capabilities", "markerVerified": true }, { "id": "CAP-MCP-hive-mind-tools", "desc": "MCP tools (9): hive-mind_broadcast, hive-mind_consensus, hive-mind_init, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js", "sha256": "8482312f5b447ae6008d13b0873945f026bf540e559195cf961b948a94520678", "marker": "hive-mind_broadcast", "markerVerified": true }, { "id": "CAP-MCP-hooks-tools", "desc": "MCP tools (62): build-agents, explain, hooks_build-agents, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js", "sha256": "93f4d2f94710eed90e0bcc9b8823e91f1a4b894221fae1972c1f6745d90b622d", "marker": "build-agents", "markerVerified": true }, { "id": "CAP-MCP-memory-tools", "desc": "MCP tools (10): memory_bridge_status, memory_delete, memory_import_claude, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js", "sha256": "37d929df892035fe94a48cd43a074c9c773e9dc031ab56d9dd33cdbf21a87e39", "marker": "memory_bridge_status", "markerVerified": true }, { "id": "CAP-MCP-neural-tools", "desc": "MCP tools (6): neural_compress, neural_optimize, neural_patterns, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js", "sha256": "acb66c459f9eb3a34686567b5d4f9bd834b4e874e9a1229256baebfd15c4ea5c", "marker": "neural_compress", "markerVerified": true }, { "id": "CAP-MCP-performance-tools", "desc": "MCP tools (6): performance_benchmark, performance_bottleneck, performance_metrics, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js", "sha256": "8151d83f6b1abe7a9139db5c9d884c42c1b3faf986dc712c0fbd43a22af39f51", "marker": "performance_benchmark", "markerVerified": true }, { "id": "CAP-MCP-progress-tools", "desc": "MCP tools (4): progress_check, progress_summary, progress_sync, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.js", "sha256": "be81711252828e4b2deee94205d0ca45c27a96f8adfd619a342973d94974de88", "marker": "progress_check", "markerVerified": true }, { "id": "CAP-MCP-ruvllm-tools", "desc": "MCP tools (10): ruvllm_chat_format, ruvllm_generate_config, ruvllm_hnsw_add, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/ruvllm-tools.js", "sha256": "b6780d8693d5e1c743717d589783dc33581b45900a8d8bf282a27923e0460981", "marker": "ruvllm_chat_format", "markerVerified": true }, { "id": "CAP-MCP-security-tools", "desc": "MCP tools (6): aidefence_analyze, aidefence_has_pii, aidefence_is_safe, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js", "sha256": "c3888c82da9a1c3e60494b412ba0fbc605bfc6840ab77c466a2bf5854a9d84aa", "marker": "aidefence_analyze", "markerVerified": true }, { "id": "CAP-MCP-session-tools", "desc": "MCP tools (5): session_delete, session_info, session_list, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js", "sha256": "159365d8f876d52b94a3c1420e9ac3e6da442a4d0fa0bcd6de292b6282113cee", "marker": "session_delete", "markerVerified": true }, { "id": "CAP-MCP-swarm-tools", "desc": "MCP tools (9): agents, coordinator, persistence, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js", "sha256": "bdc3e2586e6041674dc7504993024078e7bcd9a18505d5b82110deb0e6e06503", "marker": "agents", "markerVerified": true }, { "id": "CAP-MCP-system-tools", "desc": "MCP tools (15): config, database, disk, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.js", "sha256": "57484b98e9f15965d77032b8c322b987ac457122c8a647c2752a79b35254f972", "marker": "config", "markerVerified": true }, { "id": "CAP-MCP-task-tools", "desc": "MCP tools (7): task_assign, task_cancel, task_complete, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.js", "sha256": "abb42c265fc282ec3b70ec63304bd2c5b0ae28a9604b912dc09a546e1867d9f4", "marker": "task_assign", "markerVerified": true }, { "id": "CAP-MCP-terminal-tools", "desc": "MCP tools (5): terminal_close, terminal_create, terminal_execute, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.js", "sha256": "215225f067a826f72354973cafcecdcb52ec46c6e981918811e3d711f04553e4", "marker": "terminal_close", "markerVerified": true }, { "id": "CAP-MCP-transfer-tools", "desc": "MCP tools (11): transfer_detect-pii, transfer_ipfs-resolve, transfer_plugin-featured, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.js", "sha256": "8a15f0da3ed12eb20ac47041ed21d082dec78914d690a62a8de1f72d8bec6414", "marker": "transfer_detect-pii", "markerVerified": true }, { "id": "CAP-MCP-wasm-agent-tools", "desc": "MCP tools (10): wasm_agent_create, wasm_agent_export, wasm_agent_files, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/wasm-agent-tools.js", "sha256": "d768a24ffa888f5e11e49a3b856721c618b124f36a03965a997fc50b8892e001", "marker": "wasm_agent_create", "markerVerified": true }, { "id": "CAP-MCP-workflow-tools", "desc": "MCP tools (10): workflow_cancel, workflow_create, workflow_delete, …", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js", "sha256": "442839dca2d6177f2567dccaf1f48306c304cbca0659c477501604289f7ad5a6", "marker": "workflow_cancel", "markerVerified": true }, { "id": "#1795", "desc": "umbrella package missing cli-core dep (ERR_MODULE_NOT_FOUND)", "file": "package.json", "sha256": "f054233b90811bb2caa19c186a4b850e09b1d65912972f18982a920b73780b3b", "marker": "@claude-flow/cli-core", "markerVerified": true }, { "id": "#1780", "desc": "hive-mind --mcp-config variadic prompt slurp (ENAMETOOLONG)", "file": "v3/@claude-flow/cli/dist/src/commands/hive-mind.js", "sha256": "1d54f3c7589b4e54df60846e29fbe64867f48df5467fc5f44b8bb2fb4b437ad7", "marker": "--mcp-config=", "markerVerified": true }, { "id": "#1791.6", "desc": "memory init idempotent when DB exists", "file": "v3/@claude-flow/cli/dist/src/memory/memory-initializer.js", "sha256": "303808b8731937090f104d076495fbe1be43f7cc09d732c4c11f7073e5068653", "marker": "alreadyExists", "markerVerified": true }, { "id": "#1791.7", "desc": "doctor walk-up .git fallback", "file": "v3/@claude-flow/cli/dist/src/commands/doctor.js", "sha256": "3f2860d1e24860dd17c395b11eb01509bacb22c549585935f7f7404686abc679", "marker": "is-inside-work-tree", "markerVerified": true }, { "id": "#1791.2", "desc": "lazy-command pre-load for short flag scoping (also closes #1651)", "file": "v3/@claude-flow/cli/dist/src/parser.js", "sha256": "381b884d3902a998be261637c13ac4c890e07b165b16437b4eb064c2daaa0381", "marker": "isLazyOnly", "markerVerified": true }, { "id": "#1791.5", "desc": "doctor --fix help text clarification", "file": "v3/@claude-flow/cli/dist/src/commands/doctor.js", "sha256": "3f2860d1e24860dd17c395b11eb01509bacb22c549585935f7f7404686abc679", "marker": "Print suggested fix commands", "markerVerified": true }, { "id": "#1791.4", "desc": "subcommand --help renders leaf, not parent", "file": "v3/@claude-flow/cli/dist/src/index.js", "sha256": "ed6a9e9af820c26e8e40905797617628df8ea396493870779a0bc934abcfa10c", "marker": "commandPathOrName", "markerVerified": true }, { "id": "#1791.1", "desc": "hive-mind task re-routed to task_create MCP tool", "file": "v3/@claude-flow/cli/dist/src/commands/hive-mind.js", "sha256": "1d54f3c7589b4e54df60846e29fbe64867f48df5467fc5f44b8bb2fb4b437ad7", "marker": "task_create", "markerVerified": true }, { "id": "#1791.8", "desc": "content-hash dedupe in memory_import_claude --allProjects", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js", "sha256": "37d929df892035fe94a48cd43a074c9c773e9dc031ab56d9dd33cdbf21a87e39", "marker": "duplicatesSkipped", "markerVerified": true }, { "id": "#1799", "desc": "orphan-swarm reconcile on swarm-state.json load (PID + TTL)", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js", "sha256": "bdc3e2586e6041674dc7504993024078e7bcd9a18505d5b82110deb0e6e06503", "marker": "reconcileOrphanSwarms", "markerVerified": true }, { "id": "#1798", "desc": "doctor surfaces config collision (legacy JSON + v3 YAML)", "file": "v3/@claude-flow/cli/dist/src/commands/doctor.js", "sha256": "3f2860d1e24860dd17c395b11eb01509bacb22c549585935f7f7404686abc679", "marker": "Config collision", "markerVerified": true }, { "id": "#1810", "desc": "WASM gallery default Sonnet bumped 20250514 → 4-6", "file": "v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js", "sha256": "12fce07f6458aff5db210b0ba50104fa9b2dd52c85b5e9071b48c2899451c631", "marker": "claude-sonnet-4-6", "markerVerified": true }, { "id": "#1807", "desc": "aidefence load: retry plain import + actionable error", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js", "sha256": "c3888c82da9a1c3e60494b412ba0fbc605bfc6840ab77c466a2bf5854a9d84aa", "marker": "resolver path", "markerVerified": true }, { "id": "#1686", "desc": "NaN-safe coercion in hooks metrics + pretrain (safeNum)", "file": "v3/@claude-flow/cli/dist/src/commands/hooks.js", "sha256": "91a793c34e0c9bac00923fefde2ec458ef5fc8d0ff73cb2ebd35d55e9e938f3f", "marker": "safeNum", "markerVerified": true }, { "id": "#1670", "desc": "RuFlo Co-Authored-By trailer made opt-in", "file": "v3/@claude-flow/cli/dist/src/init/settings-generator.js", "sha256": "bba78d719e47c4cd3d56bb08112fde37624432711c02baf9b356bfd480bd837e", "marker": "options.attribution === true", "markerVerified": true }, { "id": "#1622", "desc": "memory stats shows embedding provider + HNSW status", "file": "v3/@claude-flow/cli/dist/src/commands/memory.js", "sha256": "7f04b21f168c7e00b13bdb7e0811fa83140db66ea2c3b0cf396abba6af3941f5", "marker": "Semantic Search", "markerVerified": true }, { "id": "#1574", "desc": "github-project-management skill: Security Considerations section", "file": ".claude/skills/github-project-management/SKILL.md", "sha256": "b03341fd433d1523e74b4f407337fefc4b319186bff02620cff89b0193d5b286", "marker": "Security Considerations (read first)", "markerVerified": true }, { "id": "#1608", "desc": "bcrypt → bcryptjs (drops 6 HIGH tar CVEs)", "file": "v3/@claude-flow/security/dist/password-hasher.js", "sha256": "96b46dd1849fcae990c955dc81703aca8269b2a5d2c69f18003ba9b15bc3f1cf", "marker": "bcryptjs", "markerVerified": true }, { "id": "#1609", "desc": "vitest bumped to ^4.0.16 (drops 4 moderate esbuild CVEs)", "file": "v3/@claude-flow/aidefence/package.json", "sha256": "0a9d315b4c1c74b2f86befd070c73a5651d9d1fcdd0b81c38aa2663976952483", "marker": "\"vitest\": \"^4.0.16\"", "markerVerified": true }, { "id": "#1779", "desc": "init detect-and-skip when ruflo MCP already registered", "file": "v3/@claude-flow/cli/dist/src/init/executor.js", "sha256": "0c90b9b2bc582e8c872a016de085ca6faa8d837ea43f7bb15ada01d6b67a33d4", "marker": "detectExistingRufloMCP", "markerVerified": true }, { "id": "#1463", "desc": "statusline detects Python test_*.py / spec_*.py", "file": ".claude/helpers/statusline.cjs", "sha256": "2e1ec6702dc5dd64c563292414c93c49257ccd26ad1f74589bb3ddb4c1c0938f", "marker": "startsWith('test_')", "markerVerified": true }, { "id": "#1825", "desc": "hotfix: workspace: protocol leak in cli optionalDependencies", "file": "v3/@claude-flow/cli/package.json", "sha256": "9d8b24743c09a6f60371150207edd60a05ce393a67137c69d62e27b1d3e16c75", "marker": "\"@claude-flow/memory\": \"^3.0.0-alpha.14\"", "markerVerified": true }, { "id": "#1834", "desc": "skill listing budget bumped + duplicates pruned", "file": ".claude/settings.json", "sha256": "ba278b1f9ccf8e170e4cef3748a6bcb4efc0850b7ec66d34690fec328fdabeb1", "marker": "skillListingBudgetFraction", "markerVerified": true }, { "id": "#1867", "desc": "Node 26 install: better-sqlite3 dynamic import + optionalDependencies", "file": "v3/@claude-flow/memory/dist/sqlite-backend.js", "sha256": "95b39424f3d27658d5f39ac8142c40fad7d10aeb0c439bc924d44ae95e8e74b3", "marker": "(await import('better-sqlite3')).default", "markerVerified": true }, { "id": "#1859", "desc": "CLI flag/positional priority swap — named flags win over stray positionals (14 sites in hooks.ts)", "file": "v3/@claude-flow/cli/dist/src/commands/hooks.js", "sha256": "91a793c34e0c9bac00923fefde2ec458ef5fc8d0ff73cb2ebd35d55e9e938f3f", "marker": "ctx.flags.file || ctx.args[0]", "markerVerified": true }, { "id": "ADR-101-C", "desc": "Federation policy-engine wires claim-event + agent-handoff message types into CLAIMS_FOR_MESSAGE_TYPE (unblocked Build V3 after 3+ days of failures)", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/policy-engine.js", "sha256": "0da86e495a605f2d2942934059ec73b394195f584fcbd52720a5520a724e58b1", "marker": "'agent-handoff': ['federation:write', 'federation:spawn']", "markerVerified": true }, { "id": "#1874-mcp", "desc": "MCP server returns spec-compliant YYYY-MM-DD string for protocolVersion (was {major,minor,patch} object — Claude Code Zod rejected it)", "file": "v3/@claude-flow/mcp/dist/server.js", "sha256": "a3d7975956309d5257cca3203e75f558eec2e8653067977c0ecbb32016d792ee", "marker": "protocolVersion = '2025-11-25'", "markerVerified": true }, { "id": "#1874-shared", "desc": "Shared MCP server returns spec-compliant YYYY-MM-DD string for protocolVersion (companion to #1874-mcp)", "file": "v3/@claude-flow/shared/dist/mcp/server.js", "sha256": "eb93091a71f7459142eee3b9803e9e435110b5fdc5ac0c7d5ee05c79fc5928d7", "marker": "protocolVersion = '2024-11-05'", "markerVerified": true }, { "id": "ADR-097-Phase2a", "desc": "Federation peer state machine entity layer — FederationNode gains state field + suspend/evict/reactivate; canTransition gates all mutations; EVICTED is terminal under breaker flow", "file": "v3/@claude-flow/plugin-agent-federation/dist/domain/entities/federation-node.js", "sha256": "bc347b915de91d4bae4ec3b47ce331013fc25eb1eb60bce62516a41e282f0d10", "marker": "FederationNodeState.ACTIVE", "markerVerified": true }, { "id": "ADR-097-Phase2b", "desc": "Federation breaker service — pure evaluatePolicy + stateful FederationBreakerService with bounded per-peer telemetry buffer; coordinator sendMessage gates on !peer.isActive with PEER_SUSPENDED/PEER_EVICTED constant errors (anti-oracle)", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/federation-breaker-service.js", "sha256": "51baf85565e937622aeb3f688a056bde1049e48bbff2cc24b487d22ffc029af3", "marker": "FAILURE_RATIO_EXCEEDED", "markerVerified": true }, { "id": "ADR-097-Phase2b-coordinator", "desc": "Coordinator outbound short-circuit on !peer.isActive (companion to ADR-097-Phase2b) — refuses sends to SUSPENDED/EVICTED peers before session lookup, no remaining-budget echo", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/federation-coordinator.js", "sha256": "4ec03c4b422ce30e3a3f4aeb816b6254d43fc2bc4ad3c8c8f64baab8a0eeab7c", "marker": "PEER_EVICTED", "markerVerified": true }, { "id": "ADR-097-Phase4-mcp", "desc": "Federation Phase 4 operator surface: 3 new MCP tools (federation_breaker_status, federation_evict, federation_reactivate) for inspecting and operating the per-peer circuit breaker", "file": "v3/@claude-flow/plugin-agent-federation/dist/mcp-tools.js", "sha256": "b7dfcea86fa063b9ad60dfc2fe30f31a4db3683c9ec6bef67958334b5c16f38d", "marker": "federation_breaker_status", "markerVerified": true }, { "id": "ADR-097-Phase4-doctor", "desc": "ruflo doctor health-check: checkFederationBreaker probes plugin loadability + asserts FederationNodeState export presence (catches version-skew regressions where users have an older pre-Phase-2 federation plugin installed)", "file": "v3/@claude-flow/cli/dist/src/commands/doctor.js", "sha256": "3f2860d1e24860dd17c395b11eb01509bacb22c549585935f7f7404686abc679", "marker": "checkFederationBreaker", "markerVerified": true }, { "id": "ADR-097-Phase3-upstream", "desc": "Federation Phase 3 upstream — coordinator.reportSpend() with SpendReporter interface + breaker fan-out + federation_report_spend MCP tool. Closes ADR-097 100% end-to-end. Event shape matches cost-tracker consumer contract verbatim (peerId, taskId, tokensUsed, usdSpent, ts, success).", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/spend-reporter.js", "sha256": "3639ce837a940df28f5734056cbed029da18d8176f4065d9eb06a380f87bc0b8", "marker": "InMemorySpendReporter", "markerVerified": true }, { "id": "ADR-104-transport", "desc": "Federation plugin wires real wire transport via agentic-flow/transport/loader (loadQuicTransport). plugin.ts loads transport in initialize(), binds optional listener on config.port, closes on shutdown. sendToNode now does real ws send to peer endpoint resolved via discovery.getPeer. Validated mac↔ruvultra over tailscale (150ms real send).", "file": "v3/@claude-flow/plugin-agent-federation/dist/plugin.js", "sha256": "9f751aaee838a85e7b2371bbd73dccb5cb89c6b7751496b18d33d8b8a559de19", "marker": "agentic-flow/transport/loader", "markerVerified": true }, { "id": "ADR-109-inbound-dispatch", "desc": "Federation plugin subscribes to transport.onMessage (added in agentic-flow@2.0.12-fix.3) and dispatches inbound envelopes through inbound-dispatcher.ts. Security gates: PEER_UNKNOWN, PEER_SUSPENDED, PEER_EVICTED, MISSING_METADATA. Validated mac→ruvultra: 3/3 envelopes delivered, dispatcher fired, audit recorded 3 rejections.", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/inbound-dispatcher.js", "sha256": "3fd86ae2f4c65a983db43569e34d28851c5377d8acd9f4aae666cf3ae09db542", "marker": "FEDERATION_INBOUND_EVENT_PREFIX", "markerVerified": true }, { "id": "ADR-110-memory-spend-reporter", "desc": "Federation MemorySpendReporter — production SpendReporter that satisfies the cost-tracker consumer contract (namespace=federation-spend, key=fed-spend-<peerId>-<ts>, default TTL 7d). Storage-agnostic via injected MemoryStore interface; integrators wire ruflo memory MCP/CLI/direct.", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/spend-reporter.js", "sha256": "3639ce837a940df28f5734056cbed029da18d8176f4065d9eb06a380f87bc0b8", "marker": "MemorySpendReporter", "markerVerified": true }, { "id": "ADR-109-sig-verify", "desc": "Inbound dispatcher Ed25519 signature verification — closes the trust gap where sourceNodeId in metadata was a self-claim. canonicalizeEnvelopeForVerify produces deterministic signing bytes. Outbound side signs in plugin.ts sendToNode; receiver verifies against discovery's published peer.publicKey. Reject INVALID_SIGNATURE if missing or bad. Validated alpha.11.", "file": "v3/@claude-flow/plugin-agent-federation/dist/application/inbound-dispatcher.js", "sha256": "3fd86ae2f4c65a983db43569e34d28851c5377d8acd9f4aae666cf3ae09db542", "marker": "INVALID_SIGNATURE", "markerVerified": true }, { "id": "ADR-104-compression", "desc": "WebSocket transport enables permessage-deflate (threshold 256B, zlib level 3, no-context-takeover both sides). Bytes-on-wire savings without latency cost — verified mac↔ruvultra at 10KB payload, p50=0ms, p95=1ms (same as 2KB baseline).", "file": "v3/@claude-flow/plugin-agent-federation/dist/plugin.js", "sha256": "9f751aaee838a85e7b2371bbd73dccb5cb89c6b7751496b18d33d8b8a559de19", "marker": "Ed25519 sig verify", "markerVerified": true }, { "id": "ADR-107-tls-pinning", "desc": "agentic-flow loader supports wss:// + sha256 cert pinning (fail-closed) + CA validation. Federation plugin passes config.tls through to loadQuicTransport. Closes ADR-107 cross-tailnet TLS gap. agentic-flow@2.0.12-fix.6.", "file": "v3/@claude-flow/plugin-agent-federation/dist/plugin.js", "sha256": "9f751aaee838a85e7b2371bbd73dccb5cb89c6b7751496b18d33d8b8a559de19", "marker": "loadQuicTransport", "markerVerified": true }, { "id": "ADR-104-stream-mux", "desc": "Stream multiplexing — AgentMessage.streamId, per-(address,streamId) receive queue, scoped+catch-all onMessage handlers. Cross-OS validated mac→ruvultra: 5 rpc + 3 event interleaved on wire, server's per-stream handlers received exactly 5 + 3 in correct order, catch-all saw all 8. agentic-flow@2.0.12-fix.8.", "file": "v3/@claude-flow/plugin-agent-federation/dist/plugin.js", "sha256": "9f751aaee838a85e7b2371bbd73dccb5cb89c6b7751496b18d33d8b8a559de19", "marker": "loadQuicTransport", "markerVerified": true }, { "id": "#1883", "desc": "memory_import_claude resolves project memory dir via multi-candidate hash (POSIX, WSL `/mnt/<d>/`-translated, leading-dash-stripped, space-replaced) + accepts explicit projectPath override; fixes WSL→Windows-host import returning imported=0", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js", "sha256": "37d929df892035fe94a48cd43a074c9c773e9dc031ab56d9dd33cdbf21a87e39", "marker": "function resolveProjectMemoryDir", "markerVerified": true }, { "id": "#1884", "desc": "memory_import_claude sanitizes constructed keys via sanitizeMemoryKey before storeEntry, ensuring memory_delete can later remove them; closes the write-path/read-path validation asymmetry that stranded keys with shell-metacharacter section titles", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js", "sha256": "37d929df892035fe94a48cd43a074c9c773e9dc031ab56d9dd33cdbf21a87e39", "marker": "function sanitizeMemoryKey", "markerVerified": true }, { "id": "ADR-111", "desc": "Federation WG mesh layer (Phases 1-6) — opt-in WireGuard control plane that propagates federation breaker state to packet-layer reachability. readSafePeerWgFields validator closes peer-content injection vector found during security audit.", "file": "v3/@claude-flow/plugin-agent-federation/dist/domain/services/wg-mesh-service.js", "sha256": "b0945eb4b4b91c4f63c5bc78fa5c90f09e5031f04fb344543eee6b6b3118cc47", "marker": "readSafePeerWgFields", "markerVerified": true }, { "id": "ADR-112", "desc": "MCP tool discoverability audit — every tool description must include 'Use when ... is wrong because ...' guidance so Claude picks Ruflo over native Bash/Read/Write/Task correctly. CI guard at scripts/audit-tool-descriptions.mjs gates against regressions via monotone-decreasing baseline at verification/mcp-tool-baseline.json. 285/285 tools have guidance (was 6/285 before this work).", "file": "scripts/audit-tool-descriptions.mjs", "sha256": "78db63bc21ccb548872dc53a8f2b115bcb321a401365fb055ff2f434d3213e72", "marker": "MIN_DESCRIPTION_LENGTH", "markerVerified": true }, { "id": "#1892", "desc": "Statusline version no longer hardcoded to V3.5/V3.6 — reads from installed @claude-flow/cli package.json at runtime via resolveBannerVersion() so UI matches `ruflo doctor` output.", "file": "v3/@claude-flow/cli/.claude/helpers/statusline.js", "sha256": "393ecd3800f6cea1687e92afc383a6c3050dd4fb6774f2e28123f602bef807af", "marker": "resolveBannerVersion", "markerVerified": true }, { "id": "#1889", "desc": "agentdb_pattern-search now has a symmetric memory-store-fallback path (tiered: semantic → substring). Previously pattern-store wrote to memory-store-fallback while pattern-search only queried ReasoningBank (always empty), so writes were silently lost. New CI smoke at plugins/ruflo-core/scripts/test-mcp-roundtrips.mjs catches the paired-tool-round-trip regression class.", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js", "sha256": "666141cf59c2e75c9f65fe50eff85076a96d820bddceaba79c0b67a4469b3bb5", "marker": "controller: 'memory-store-fallback'", "markerVerified": true }, { "id": "#1906", "desc": "agent_execute model aliases (haiku/sonnet/opus/inherit) map to current Claude 4.x ids (claude-haiku-4-5-20251001 / claude-sonnet-4-6 / claude-opus-4-7) — previously stuck on claude-3-*-latest which the Anthropic API 404s. DEFAULT_ANTHROPIC_MODEL = claude-sonnet-4-6. Unit test __tests__/agent-execute-models.test.ts asserts no alias resolves to a claude-3.x id.", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.js", "sha256": "2bc49c38b14d43a0329bf5d84913528851ef1c48ab32b8c8c1c40f83c062fc7f", "marker": "claude-sonnet-4-6", "markerVerified": true }, { "id": "#1914", "desc": "daemon start no longer SIGTERMs daemons belonging to OTHER workspaces (ADR-014 per-workspace scope). Forked daemon argv is stamped with `--workspace <root>` (kept last) and killStaleDaemons{Posix,Windows} filter on it via daemonCommandLineBelongsToWorkspace — exact trailing match, never a path-prefix match, so `/a/proj` start can't reap `/a/proj-other`'s daemon. Pre-#1914 daemons (no stamp) are left for `daemon stop` (PID file). Unit guard __tests__/daemon-workspace-scope.test.ts.", "file": "v3/@claude-flow/cli/dist/src/commands/daemon.js", "sha256": "6b600ec62ef9a3898fd3c606c23034a10a005c0330d0dac43b29f6d2abc2ec8e", "marker": "daemonCommandLineBelongsToWorkspace", "markerVerified": true }, { "id": "#1916", "desc": "agent_logs MCP tool registered (the `ruflo agent logs <id>` CLI subcommand called a tool that didn't exist → `MCP tool not found: agent_logs`). Also agent_status/agent_list/agent_logs now resolve hive-mind-spawned workers via loadAllAgents() — hive-mind_spawn writes to `.claude-flow/agents.json`, a different file from `.claude-flow/agents/store.json`, so `agent status <hive-worker-id>` returned `not_found`. (Task-execution dispatch for hive workers — #1916 items 3/4 — is a tracked follow-up.) Unit guard __tests__/agent-logs-hive-resolution.test.ts.", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js", "sha256": "a182a61809b5480e9eb4139ed8fa3b8e471201d338be4e086578b4e2e325302a", "marker": "loadAllAgents", "markerVerified": true }, { "id": "#1916-guard", "desc": "CLI↔MCP tool coverage CI guard (scripts/audit-cli-mcp-tools.mjs) — fails if any `ruflo <cmd>` subcommand callMCPTool()s a name not registered in src/mcp-tools/*.ts. Monotone-decreasing baseline at verification/cli-mcp-tool-baseline.json — now at 0 (was 20). Wired into v3-ci.yml `tool-descriptions-audit` job (already in witness-verify needs[]).", "file": "scripts/audit-cli-mcp-tools.mjs", "sha256": "39cff77e40a0891b80e07bf0356bc5344f84579f67c383ea5b6cab2115b43b73", "marker": "cli-mcp-tool-baseline.json", "markerVerified": true }, { "id": "#1916-cli-tools", "desc": "Registered the 16 MCP tools that CLI subcommands referenced but that were never wired into the registry (the `MCP tool not found` class surfaced by #1916-guard): task_retry, workflow_stop, workflow_validate, session_current/export/import, memory_detailed-stats/cleanup/compress/export/import, hive-mind_optimize-memory, hooks_teammate-idle, hooks_task-completed, mcp_start, mcp_stop — plus renamed the coverage tools `hooks/coverage-*` → `hooks_coverage-*` (now match the CLI's underscore calls) and pointed `swarm stop` at `swarm_shutdown`. cli-mcp-tool-baseline.json is now 0.", "file": "v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js", "sha256": "442839dca2d6177f2567dccaf1f48306c304cbca0659c477501604289f7ad5a6", "marker": "workflow_validate", "markerVerified": true }, { "id": "#1902-#1903-guard", "desc": "Plugin package.json install-safety CI guard (scripts/audit-plugin-packages.mjs) — fails CI on (A) an unpublished @claude-flow/* hard dep / non-optional peer (#1903 ruvector-upstream class), (B) a bare-stable peer range that can't resolve a 3.x prerelease publish (#1902), (C) a main/module/exports path not covered by `files`, (D) post-build, a main/module/exports path that doesn't exist on disk (#1904). Wired into v3-ci.yml as `plugin-package-audit` (builds plugins first so check D is live) and added to witness-verify needs[].", "file": "scripts/audit-plugin-packages.mjs", "sha256": "a4daac5d4732d9030890e937a78963346f30f3002303429a0d0aa95ac8d5f73a", "marker": "KNOWN_PUBLISHED", "markerVerified": true }, { "id": "#1904", "desc": "plugin-gastown-bridge — package.json `exports` advertised ./dist/index.mjs (+ ./formula, ./convoy subpaths) that the build never emitted, so those import specifiers 404'd in the published tarball. Fix: tsup.config.ts builds the formula/convoy entries (previously commented out), and package.json exports/main/module point at the actually-emitted .js/.cjs filenames. Validated by the plugin-package-audit CI guard (check D).", "file": "v3/plugins/gastown-bridge/tsup.config.ts", "sha256": "e8bcf68635d45764e46be0c80647781134f8f437b395b949a95e56cce717a9e3", "marker": "formula: 'src/formula/index.ts'", "markerVerified": true }, { "id": "#1921", "desc": "Plugin hooks no longer do a bare `npx <pkg>@alpha hooks …` on every PreToolUse/PostToolUse/Stop fire — they invoke scripts/ruflo-hook.sh, which prefers a locally-installed `ruflo`/`claude-flow` binary, falls back to `npx --prefer-offline`, and ALWAYS exits 0 so a CLI/install crash (e.g. arborist `Invalid Version` on npm 10.8.x) never surfaces a hook error in Claude Code or wastes a cold-cache reinstall per turn. CI guard: scripts/audit-hook-commands.mjs (fails on bare-npx-without-prefer-offline / non-guarded CLI invocation) wired into v3-ci.yml `hook-command-audit` + added to witness-verify needs[].", "file": "scripts/audit-hook-commands.mjs", "sha256": "6f2702c59f1cb2438533ee4e7b2648dc2c2076334c60e5ca4dc30db5a0c99c5b", "marker": "NONFATAL_RE", "markerVerified": true }, { "id": "#1921-shim", "desc": "scripts/ruflo-hook.sh — resilient invoker shipped in each plugin (.claude-plugin/, plugin/, plugins/ruflo-core/): prefers a local `ruflo`/`claude-flow` binary, else `npx --prefer-offline --yes ruflo@alpha`, always `exit 0`. stdin (hook event JSON) passes through unchanged. Companion to #1921.", "file": "plugins/ruflo-core/scripts/ruflo-hook.sh", "sha256": "08d576ea4938dbb7ac6c5072b2463ddf3299802801cf1d0110a1244ebe0868ea", "marker": "npx --prefer-offline --yes ruflo@alpha hooks", "markerVerified": true }, { "id": "#1862", "desc": "ruflo-core PostToolUse hooks call documented CLI flags (-c/-s/-e, -f/-s) instead of bogus --format true. (#1921 moved the invocation behind scripts/ruflo-hook.sh — the documented-flag form is preserved.)", "file": "plugins/ruflo-core/hooks/hooks.json", "sha256": "3c99ed6c845a3ff44d4e012081307a4d2af3aaf8a1025dcdb125bff1eab2a661", "marker": "post-edit -f \\\"$FILE\\\" -s true", "markerVerified": true }, { "id": "#1927", "desc": "ruflo-cost-tracker track.mjs encodeProjectPath now replaces Windows path separators (`\\`) and the drive colon (`:`), not just `/`, so `D:\\project\\Foo` encodes to `D--project-Foo` (matching Claude Code's ~/.claude/projects/<encoded-cwd>/ scheme) instead of being passed through unchanged on Windows. Behavioral CI guard: smoke.sh step 29b runs track.mjs with a Windows-style TRACK_CWD and asserts the 'looked under' path is encoded. (Also fixed smoke.sh step 8 — ADR-0001 is Accepted, not Proposed.)", "file": "plugins/ruflo-cost-tracker/scripts/track.mjs", "sha256": "acb8640bffaf15c5af37df30748f55af72c1acaaab084f68cafb3bf4da253be1", "marker": "#1927: Claude Code encodes", "markerVerified": true } ] }, "integrity": { "manifestHashAlgo": "sha256", "manifestHash": "50f0f64221c9c1b2dd87a0c0c00326a788ab9714e1ad54a5e460f41f043e6a43", "signatureAlgo": "ed25519", "publicKey": "97de589f86725e38d088ce04346d179dd0bfc681fdbc65d6c8bd43e1af4b3c09", "signature": "ed39c195e5a99ac1852f3d2ca47837bd7d0a0cbf12bdbb28eca3b129a3591b4765ab50e156f260ebe91de3aea28cdea0a0a8cac506148669ae29473e10066604", "seedDerivation": "sha256(gitCommit + ':ruflo-witness/v1')" } }