v0.9.0
Changes in this Release
- release: v0.9.0 (#362) (1ad264d)
- test(mcp-skill): pin declared-field alias-bomb retype vector for RawFrontmatter (#361) (3cf043b)
- ci: bump actions/labeler from 6 to 7 (#356) (aa4dfc4)
- ci: bump dorny/paths-filter from 3 to 4 (#357) (b6b5bf9)
- fix(cli,core): redact secret URLs from rmcp log lines and error reports (#360) (2d4eff5)
- ci: bump actions/setup-node from 6 to 7 (#354) (a54e291)
- test: pin RawFrontmatter alias-bomb short-circuit, generalize untrusted-echo guard (#358) (7c4d506)
- ci: bump lewagon/wait-on-check-action from 1.8.1 to 1.9.0 (#355) (fbd0846)
- fix(core,cli): close secret-redaction gaps in Transport Debug and server output (#352) (6fdc4da)
- docs(specs): evaluate serde-saphyr as serde_norway replacement (#349) (a34cbe9)
- refactor(files,skill)!: close FilesResourceKind and ParsedToolFile server_id gaps (#348) (8055523)
- fix(cli): redact secrets in introspect --verbose transport log (#347) (af6bc33)
- refactor(core)!: replace catch-all primitives with closed types (#344) (909beb6)
- security(deny): close unsound-advisory gap for transitive unsafe deps (#338) (7155c1a)
- Rename skill's ServerIdError and close stdio test coverage gaps (#340) (b96bcce)
- refactor(codegen): dedupe per-tool schema parsing, fix reserved-word case sensitivity, justify clippy allows (#337) (de8f16c)
- refactor(cli,files)!: type-safety cluster for export panics, output validation, and server status (#335) (599d893)
- refactor(cli)!: represent transport selection as a closed ServerSource enum (#334) (9d8593e)
- ci: restore fail-fast gating on downstream jobs (#333) (075c238)
- refactor(introspector): dedupe discover_via_stdio/discover_via_http connect pipeline (#331) (aa0ee31)
- refactor(core)!: enforce type-level invariants for ServerId, ToolName, ServerConfig (#328) (5115f42)
- fix(cli): escape untrusted error text and fix server info/validate on invalid entries (#326) (3e29360)
- refactor(codegen)!: eliminate domain-impossible states in ToolContext/BridgeContext (#327) (6cde116)
- ci: skip full check suite for docs-only changes (#325) (cce02a7)
- fix(cli): sanitize server id derivation in generate to prevent path traversal (#324) (7f06d37)
- docs: add reverse-engineered specification package for existing system (#321) (fd1aed5)
- fix(codegen,server): tool-name collision and categorization desync bugs (#322) (bb9147f)
- fix(codegen): cap recursion depth in schema-to-TypeScript conversion (#319) (110a2a3)
- fix(core,skill,server): delimit untrusted MCP tool metadata before embedding (#310) (8cdcd77)
- fix(cli): escape server-supplied name in generate's Text/Pretty output (#309) (92f3091)
- fix(skill): propagate canonicalize I/O errors instead of masking as not-found (#306) (8e9a1a5)
- fix(cli): report transport-appropriate server status and validate messages (#301) (8e579ff)
- fix(server): dedupe blank-line log-suppression and length checks (#297) (88a5857)
- refactor(cli)!: bundle resolve_server_config's positional args into RawServerArgs (#296) (028d9b3)
- fix(introspector): stop warn!-logging blank lines in bounded decoder (#282) (8ba825a)
- refactor(codegen,cli): dedupe generation pipeline and MAX_SERVER_ID_LENGTH (#283) (8ddaa9a)
- server: fix request-stall bug; cli: drop dead pub helpers (#281) (b698f9d)
- cli: redact Debug URL fields and downgrade dead-public config helpers (#274) (5fbafb0)
- fix(files)!: make export paths atomic and drop dead FilesError predicates (#270) (4a3163f)
- docs(codegen): document tsconfig.json leaf-configuration behavior (#277) (087c1f5)
- fix(introspector): bound stdio discovery read path against unbounded memory growth (#272) (25cb40a)
- docs(core): document that Serialize bypasses ServerConfig's Debug redaction (#271) (bc17416)
- fix(codegen): attribute per-tool generation errors and stop mangling non-ASCII identifiers (#269) (8ea3c62)
- fix: harden runtime bridge content/structuredContent handling (#267) (273d874)
- docs(workspace): backfill missing rustdoc examples and allow-attribute justifications (#268) (3efa1f1)
- refactor(cli,server): extract pipeline-stage helpers from long command handlers (#265) (535ed21)
- fix(introspector): populate output_schema from rmcp instead of hardcoded None (#264) (a7e5f36)
- fix(codegen): resolve runtime import specifiers and guard empty bridge content (#260) (8880c6b)
- fix(codegen): widen generated Result type and ship a working tsconfig.json (#253) (30a5ce8)
- fix: bound resource-exhaustion vectors across the introspect-store-codegen pipeline (#259) (6a7aacb)
- refactor(introspector,server,codegen): replace positional tuples with named structs and add tracing spans (#252) (badd0b2)
- fix(cli): type --format as OutputFormat and redact secrets in Cli/Commands Debug (#250) (8ac015d)
- fix(core): match Windows separator/case variants in sanitize_path_for_error (#249) (e89cd18)
- fix(core,cli): redact command/args/url/cwd and RawMcpServerEntry in Debug output (#248) (250c3e0)
- refactor(core)!: remove dead ServerConfigBuilder::try_build() alias and unused Error variants (#244) (96b0951)
- fix(server): confine list_generated_servers base_dir and pin introspect_server's stdio-only transport (#243) (1ef58ae)
- fix(codegen): demultiplex JSON-RPC responses by request id in runtime bridge (#242) (9875c0b)
- fix(cli,core): redact secret-shaped values in McpTransport/TransportArgs Debug and command validation errors (#238) (9fe5c14)
- cli: dedupe mcp-cli module tree and remove unused dependencies (#237) (cf563e6)
- fix(server,skill)!: confine generated-output write paths to the caller's server directory (#235) (0991fd1)
- fix(server): bound concurrent in-flight stdio requests (#234) (c87ef39)
- fix(core,codegen,introspector,server)!: enforce ServerConfig validation at construction and harden runtime bridge (#233) (69ce7a8)
- fix(skill): parse SKILL.md frontmatter with a real YAML parser (#231) (e27f492)
- fix(core): stop echoing secret-shaped header names/values and redact ServerConfig Debug output (#230) (ecd1bc6)
- fix(server): bound stdio JSON-RPC request line size before deserialization (#224) (8ddf847)
- fix(codegen,core): stop escaping JSDoc output and re-validate mcp.json in the runtime bridge (#220) (a5ce837)
- fix(server,skill): confine save_skill output_path to the skills base directory (#218) (371b4eb)
- fix(cli): stop leaking secrets and route CLI errors to semantic exit codes (#214) (bf63c97)
- fix(server): bound categorized_tools size and observe cancellation (#219) (cdf7285)
- fix(cli)!: support http/sse mcp.json entries in --from-config (#212) (28bcf0a)
- fix(introspector,core,cli): implement working http/sse transport for introspection (#200) (f59ea65)
- fix(codegen): emit tsc-clean generated tool wrappers (#181) (560aa89)
- chore(deps): bump the minor-and-patch group with 10 updates (#175) (7c1f965)
- chore(deps): bump the minor-and-patch group with 2 updates (#174) (dfbc4ae)
What's Changed
- chore(deps): bump the minor-and-patch group with 2 updates by @dependabot[bot] in #174
- chore(deps): bump the minor-and-patch group with 10 updates by @dependabot[bot] in #175
- fix(codegen): emit tsc-clean generated tool wrappers by @bug-ops in #181
- fix(introspector,core,cli): implement working http/sse transport for introspection by @bug-ops in #200
- cli: support http/sse mcp.json entries in --from-config by @bug-ops in #212
- fix(server): bound categorized_tools size and observe request cancellation by @bug-ops in #219
- fix(cli): stop leaking secrets and route CLI errors to semantic exit codes by @bug-ops in #214
- fix(server,skill): confine save_skill output_path to the skills base directory by @bug-ops in #218
- fix(codegen,core): stop escaping JSDoc output and re-validate mcp.json in the runtime bridge by @bug-ops in #220
- fix(server): bound stdio JSON-RPC request line size before deserialization by @bug-ops in #224
- fix(core): redact secret-shaped header names/values and ServerConfig Debug output by @bug-ops in #230
- fix(skill): parse SKILL.md frontmatter with a real YAML parser by @bug-ops in #231
- fix!: enforce ServerConfig validation at construction, harden runtime bridge by @bug-ops in #233
- fix(server): bound concurrent in-flight stdio requests by @bug-ops in #234
- fix(server,skill)!: confine generated-output write paths to the caller's server directory by @bug-ops in #235
- cli: dedupe mcp-cli module tree and remove unused dependencies by @bug-ops in #237
- fix(cli,core): redact secret-shaped values in McpTransport/TransportArgs Debug and command validation errors by @bug-ops in #238
- fix(codegen): demultiplex JSON-RPC responses by request id in runtime bridge by @bug-ops in #242
- fix(server): confine list_generated_servers base_dir and pin introspect_server's stdio-only transport by @bug-ops in #243
- core: remove dead ServerConfigBuilder::try_build() alias and unused Error variants by @bug-ops in #244
- cli,core: redact command/args/url/cwd and RawMcpServerEntry in Debug output by @bug-ops in #248
- fix(core): match Windows separator/case variants in sanitize_path_for_error by @bug-ops in #249
- cli: type --format as OutputFormat and redact secrets in Cli/Commands Debug by @bug-ops in #250
- refactor(introspector,server,codegen): named discovery structs and tracing spans by @bug-ops in #252
- fix: bound resource-exhaustion vectors across the introspect-store-codegen pipeline by @bug-ops in #259
- fix(codegen): widen generated Result type and ship a working tsconfig.json by @bug-ops in #253
- fix(codegen): resolve runtime import specifiers and guard empty bridge content by @bug-ops in #260
- fix(introspector): populate output_schema from rmcp instead of hardcoded None by @bug-ops in #264
- refactor(cli,server): extract pipeline-stage helpers, add npm-install hint by @bug-ops in #265
- docs(workspace): backfill missing rustdoc examples and allow-attribute justifications by @bug-ops in #268
- fix: harden runtime bridge content/structuredContent handling by @bug-ops in #267
- fix(codegen): attribute per-tool generation errors and stop mangling non-ASCII identifiers by @bug-ops in #269
- docs(core): document that Serialize bypasses ServerConfig's Debug redaction by @bug-ops in #271
- fix(introspector): bound stdio discovery read path against unbounded memory growth by @bug-ops in #272
- docs(codegen): document tsconfig.json leaf-configuration behavior by @bug-ops in #277
- fix(files): make export paths atomic and drop dead FilesError predicates by @bug-ops in #270
- cli: redact Debug URL fields and downgrade dead-public config helpers by @bug-ops in #274
- server: fix request-stall bug; cli: drop dead pub helpers by @bug-ops in #281
- refactor(codegen,cli): dedupe generation pipeline and MAX_SERVER_ID_LENGTH by @bug-ops in #283
- fix(introspector): stop warn!-logging blank lines in bounded decoder by @bug-ops in #282
- cli: bundle resolve_server_config's positional args into RawServerArgs by @bug-ops in #296
- fix(server): dedupe blank-line log-suppression and length checks by @bug-ops in #297
- cli: report transport-appropriate server status and validate messages by @bug-ops in #301
- fix(skill): propagate canonicalize I/O errors instead of masking as not-found by @bug-ops in #306
- cli: escape server-supplied name in generate's Text/Pretty output by @bug-ops in #309
- fix(core,skill,server): delimit untrusted MCP tool metadata before embedding by @bug-ops in #310
- fix(codegen): cap recursion depth in schema-to-TypeScript conversion by @bug-ops in #319
- fix(codegen,server): tool-name collision and categorization desync bugs by @bug-ops in #322
- docs: reverse-engineered specification package by @bug-ops in #321
- fix(cli): sanitize server id derivation in generate to prevent path traversal by @bug-ops in #324
- ci: skip full check suite for docs-only changes by @bug-ops in #325
- refactor(codegen): eliminate domain-impossible states in ToolContext/BridgeContext by @bug-ops in #327
- fix(cli): escape untrusted error text and fix server info/validate on invalid entries by @bug-ops in #326
- refactor(core)!: enforce type-level invariants for ServerId, ToolName, ServerConfig by @bug-ops in #328
- refactor(introspector): dedupe discover_via_stdio/discover_via_http connect pipeline by @bug-ops in #331
- ci: restore fail-fast gating on downstream jobs by @bug-ops in #333
- refactor(cli): represent transport selection as a closed ServerSource enum by @bug-ops in #334
- refactor(cli,files)!: type-safety cluster for export panics, output validation, and server status by @bug-ops in #335
- refactor(codegen): dedupe schema parsing, fix reserved-word case sensitivity, justify clippy allows by @bug-ops in #337
- Rename skill's ServerIdError and close stdio test coverage gaps by @bug-ops in #340
- security(deny): close unsound-advisory gap for transitive unsafe deps by @bug-ops in #338
- refactor(core)!: replace catch-all primitives with closed types by @bug-ops in #344
- fix(cli): redact secrets in introspect --verbose transport log by @bug-ops in #347
- refactor(files,skill)!: close FilesResourceKind and ParsedToolFile server_id gaps by @bug-ops in #348
- docs(specs): evaluate serde-saphyr as serde_norway replacement by @bug-ops in #349
- fix(core,cli): close secret-redaction gaps in Transport Debug and server output by @bug-ops in #352
- ci: bump lewagon/wait-on-check-action from 1.8.1 to 1.9.0 by @dependabot[bot] in #355
- test: pin RawFrontmatter alias-bomb short-circuit, generalize untrusted-echo guard by @bug-ops in #358
- ci: bump actions/setup-node from 6 to 7 by @dependabot[bot] in #354
- fix(cli,core): redact secret URLs from rmcp log lines and error reports by @bug-ops in #360
- ci: bump dorny/paths-filter from 3 to 4 by @dependabot[bot] in #357
- ci: bump actions/labeler from 6 to 7 by @dependabot[bot] in #356
- test(mcp-skill): pin declared-field alias-bomb retype vector by @bug-ops in #361
- release: v0.9.0 by @bug-ops in #362
Full Changelog: v0.8.0...v0.9.0