Releases: using-system/oddyssey
Releases · using-system/oddyssey
Release list
v1.11.3
[1.11.3] - 2026-09-06
🚀 Features
- (skill) K6-guides - a reference for driving an MCP server over streamable HTTP (#438)
- (skill) Odd-memory - odd_recall.py answers the benchmark kind, so an authoring mission's recall is a command and not a hand-read of every manifest (#460)
- (agent,skill) Observe mode with a benchmark states its k6 evidence, its window, its report name and its watch (#463)
- (agent) K6-benchmark-expert authors the traceparent so a remotely driven benchmark carries both identity headers (#466)
🐛 Bug Fixes
- (agent,skill) Key a verification's rulings by its baseline's finding ids, and defer the verifications that key none (#447)
- (hooks) Read the whole command line in the default-branch guard (#448)
- (agent) The k6 pre-persist gate checks the manifest, not only the script (#449)
- (hooks) Accept every id in the parenthesised list an instance key opens (#450)
- (ci) Strip the executable bit in build-marketplace.sh so the generated tree matches what the release commits (#451)
- (agent,skill) Observe-run keys an operation by the unit the service serves, method and route on HTTP (#459)
- (skill) Get-status lifts a gaps section bullet by bullet (#458)
- (skill) Run-scenario - benchmark-replay states the drive conventions, remote and local (#461)
- (agents,skill) A multi-command block is a helper file, never bash -c, and its wait is a sleep inside it (#465)
📚 Documentation
- (guide) Benchmarks - one section per benchmark type, the question it answers and an example invocation (#423)
- (odd) Six benchmarks for oddyssey-mcp, one per test type, as the guide's worked examples (#437)
- (guide) Move the MCP server's tool surface into the renamed plugin.md (#443)
- (readme) Trim the install section - the apm-cli pin's failure modes and the Codex entry (#445)
- (skill) Cloudwatch reference - the 2026-09-06 X-Ray and Logs Insights field notes (#454)
- (skill) Grafana reference - correct the trace-id and increase() rows, add the Grafana Cloud traps of the first observe runs (#452)
- (skill) K6-guides - executors, integer rates, reading k6's evidence (#453)
- (skill) Record the azure-monitor KQL and metric-reading traps (#455)
- (skill) Setup-local-stack - generator series carry no instance dimension (#456)
- (odd) Backfill the manifest gate's two records into the six stored benchmarks (#462)
- (readme) Opencode and Cursor install into the repository only (#468)
- (odd) The six stored benchmarks carry the gated traceparent identity (#469)
⚙️ Miscellaneous Tasks
- (apm) Bump apm-cli to 0.29.1 in the install commands, the CI workflows and the marketplace build (#440)
v1.11.2
[1.11.2] - 2026-09-05
🚀 Features
- (mcp) Odd_config_get returns the installed oddyssey-mcp version (#397)
- (skill) Otel-guides genai reference - the gen_ai semantic conventions and the per-ecosystem instrumentation libraries mapped to their official docs (#398)
- (skill) Get-status orders the screen's judgment list by what settling an item changes, the per-lineage boundary first, before the count cap applies (#399)
- (hooks) Refuse edits to a stored report and the ruling ledgers with a PreToolUse hook - the .odd/ append-only rule made deterministic (#400)
- (hooks) Check a stored report's frontmatter at write time with a PostToolUse hook - the memory invariant of get-status shifted left (#403)
- (agents) GenAI first-class - the instrumentation expert detects and proposes, observe-run reads per-model and agent-loop telemetry, run-scenario confirms a paid model call (#406)
🐛 Bug Fixes
- (readme) Pin apm-cli 0.28.0 in the install and update commands (#383)
- (mcp) Add --refresh-package oddyssey-mcp to the shipped uvx args so a new pin resolves after a version bump (#384)
- (hooks) Guard_default_branch follows a git switch or checkout earlier on the same line, so the contract's switch-then-commit sequence passes (#385)
- (hooks) Scan_odd_identifiers treats a GUID the report declares as an OTel service.instance.id as evidence, not as an identifier (#386)
- (prompts) /odd-observe and /odd-verify know custom stacks - a custom stack named in the arguments switches to it instead of reading as a deployment-environment expectation (#389)
- (prompts) /odd-verify resolves the execution mode by walking the verifies chain, so a verification of a verification replays in an execution mode (#390)
- (hooks) Guard_default_branch resolves a remote-only branch, a branch homonymous with a directory, and a commit that runs only after || (#401)
- (agents) Shell recipes run a block under bash -c and name the zsh traps of an inline line, a bounded wait through the platform's blocking primitive where the host blocks sleep (#404)
- (agent,skill) Observe-run writes section 5 as one bullet per gap, and get-status splits a legacy paragraph on its fate markers instead of reporting a truncation (#405)
📚 Documentation
- (agents) The no-secrets rule names a remote stack's persisted stack_config values as identifiers, the way the hook already reads them (#391)
- (skill) Cloudwatch reference - the edge diff is for cumulative fields only, Duration is the root segment's, TracesProcessedCount is per page, sort takes no bin(), and the User-Agent identity is not readable on X-Ray (#392)
- (skill) Grafana reference - traces labels is limited, a TraceQL metrics query runs as a search, increase() under two exports is empty, and Tempo drops the trace id's leading zero (#393)
- (skill) Azure-monitor reference - resolve the component name from the persisted appId, and three query-output traps (#394)
- (skill) Otel-guides - profiling coverage across the 12 languages, and the python reference's zero-code extension points, default resource detectors and pin-rule source (#402)
⚙️ Miscellaneous Tasks
- (apm) Build-marketplace.sh stops passing the deprecated --target flag to apm pack - the bundle is target-agnostic and the generated trees are identical (#396)
v1.11.1
[1.11.1] - 2026-09-05
🚀 Features
- (skill) Get-status renders a one-screen synthesis by default, the full tables behind --full, and applies the caller's rulings before rendering (#365)
- (skill) Odd-memory - the finding ledger is written by a script the skill carries, every rule of the decisions reference checked before the row lands (#367)
- (skill) Get-status - the runtime / non-runtime classification of tree entries recorded once in .odd/entry-classifications.md, read by the script before the built-in list, instead of retyped as flags (#368)
- (skill) Odd-memory - a recall script the skill carries lists the stored reports a mission considers, so a recall reads one frontmatter instead of every one (#370)
- (skill) Odd-memory - a repository frontmatter field records which repository a report observed, so a central .odd/ store can tell services of several repositories apart (#373)
- (skill) Get-status resolves a report's revision and tree_anchor in the repository the report names, and rules the boundary unknown when that clone is not reachable (#374)
📚 Documentation
- (readme) Multi-repo strategies - a dedicated observability repository drives the loop when the system spans several repositories (#357)
- (odd) Classify this repository's top-level tree entries once, so the status settles a report's code boundary without flags (#372)
⚡ Performance
- (agent) The mission block carries the skills' directory, and an agent never searches the filesystem for a skill (#369)
⚙️ Miscellaneous Tasks
v1.11.0
[1.11.0] - 2026-09-04
🚀 Features
- (hooks) Refuse git commit on the default branch with a PreToolUse hook (#310)
- (hooks) Flag real identifiers and home paths in a file written under .odd/ with a PostToolUse hook (#312)
- (skill) Odd-memory - one contract for the .odd/ memory, each create and show skill keeps only its specifics (#315)
- (skill) Fold the create and show skills into odd-memory references - one memory skill, one reference per kind (#316)
- (skill) Backend-configuration - one skill for the check and the switch of the configured backend (#318)
- (mcp) Odd_config_set accepts a custom observability stack declared by the caller (#322)
- (skill) A custom observability stack as the fifth memory kind, checked against the reference contract at switch time (#325)
- (prompts) /odd-config creates or completes a custom stack file from the user's sources, their instructions, or web research (#326)
- (agent) Observe-run proposes a reviewed diff to a custom stack file after a run that exercised its commands (#327)
- (skill) A custom stack file may link an external guide - fetched and checked at switch time, amended where it lives (#328)
- (mcp) Remove the splunk built-in stack (#330)
- (agent) Observe-run - a check that passes on zero is validated on the zero branch, and the marker says which shapes were exercised (#332)
- (skill) Get-status - verify the memory invariant, every stored report carries the contract's frontmatter and every decision names an existing report (#335)
- (agent) Collector health checks name the component id as configured, and a grep that matches nothing on the whole history closes nothing (#339)
🐛 Bug Fixes
- (agent) Otel-instrumentation-expert - a verification check never projects a credential field (#308)
- (skill) Record-finding-decision - never commit the ledger on the default branch (#309)
- (skill) Run-scenario - a header-borne run identity for a target the run cannot launch, with run-unique trace ids (#331)
- (odd) Two stored reports quote a home-directory path from a Docker log - replaced by a placeholder, a recorded exception to the append-only rule (#336)
- (skill) Cloudwatch - the edge-diff recipe probes the resource fields first, the percentile sources are named, and three X-Ray and Logs Insights traps documented (#337)
🚜 Refactor
- (skill) Run-scenario - a light SKILL.md carrying the shared method, the run identity, the benchmark replay and the long-scenario carve-outs as references read by block (#334)
📚 Documentation
- (guide) Prompts - pair each example invocation with its field mapping (#289)
- (agents) Record the choices that deviate from the issue's spec as comments on that issue (#297)
- (skill) Observability-cli-guides - write the reference contract every stack file must carry, and check it in ci-apm (#313)
- (guide) Custom backends - create, edit, amend and link a custom stack, with a README section listing every backend (#329)
- (skill) Azure-monitor - ingest latency and the bounded poll, reserved KQL aliases, --offset over an explicit window, customMetrics temporality detected before trusted (#338)
⚡ Performance
- (skill) Get-status - deterministic status script, the model reasons on a fact sheet instead of parsing every report and running git turn by turn (#292)
- (skill) Get-status - render the status deterministically, the model adds judgment only (#294)
- (skill) Create-observe-run-report - return the synthesis block, never the report body (#298)
- (agent) Observe-run - bound the setup reads by section, never the agent file (#299)
- (agent) Observe-run - discoveries and exemplar fetches as shell-level concurrency in one call (#300)
v1.10.3
[1.10.3] - 2026-09-03
🚀 Features
- (agent) Observe-run - one flush wait per mission and parallel signal discovery (#267)
- (skill) Trim the preflight and baseline reads of an observe mission (#268)
- (prompts) Quick mode for /odd-observe and /odd-verify - a bounded mission under five minutes (#269)
- (skill) Run-scenario - a port already served by a foreign process is never killed, the run moves to a free one (#275)
- (agent) Route instrumentation protocol queries and timestamps (#276)
🐛 Bug Fixes
- (agent) Presence rulings prove which process emitted the signal, and profiles get a per-run identity (#272)
📚 Documentation
- (readme) Move the primitives table into the dependency map (#253)
- (guide) Simplify the README prompt sections and the guides - user docs are not specs (#271)
- (skill) Grafana reference - profile selectors, labels scope, query envelope and frame naming (#273)
- (skill) Grafana reference - count log lines over a finished window from raw lines, not edge-straddling samples (#274)
- (prompts) Name both preflight stop outcomes - not installed, and not configured (#277)
v1.10.2
[1.10.2] - 2026-09-02
🚀 Features
- (agent) Validate a k6 benchmark with inspect and one smoke iteration before persisting (#237)
- (skill) Auto-install k6 from the prompts' preflight when it is missing (#239)
🐛 Bug Fixes
- (prompts) Run a stored k6 benchmark through /odd-observe and run-scenario (#236)
- (skill) Count .odd/benchmarks/ changes as changed code for the verify-vs-re-measure boundary (#238)
- (agent) Cross-check every threshold against the service floors the investigation found (#240)
- (prompts) Ask before any drive replay on a remote stack, whatever the report kind (#241)
🚜 Refactor
- (skill) Centralize per-stack knowledge in observability-cli-guides (#244)
📚 Documentation
v1.10.1
[1.10.1] - 2026-09-02
🚀 Features
- (mcp) Publish pyroscope ingest port 4040 as a fourth named local port (#233)
🐛 Bug Fixes
- (skill) Distinguish expired SSO token from NoCredentials in cloudwatch guides (#230)
- (skill) Flag cumulative-temporality trap in cloudwatch statistics roll-ups (#231)
📚 Documentation
- (skill) Add cloudwatch CLI pagination, dimensions, percentile, and X-Ray filter edge cases (#232)
v1.10.0
[1.10.0] - 2026-08-31
🚀 Features
- (apm) Add /odd-instrument-bench for k6 benchmark authoring (#211)
🐛 Bug Fixes
- (agent) Forbid observe-run and otel-instrumentation-expert self-delegation (#204)
- (mcp) Validate stack_config keys against a per-stack field whitelist (#206)
- (aws) Add cloudwatch profile/metrics_log_group fields, document CLI gaps (#208)
🚜 Refactor
- (prompts) Rename /odd-instrument to /odd-instrument-otel (#210)
📚 Documentation
- (agents) Document the community label for discoverability issues (#200)
- (agents) Broaden the no-secrets rule to real identifiers and account names (#202)
- (skill) Document azure-monitor CLI first-use noise and customDimensions encoding (#203)
- (skill) Document the gcx sum() series-limit trap and logs labels time flags (#205)
- (guide) Add backends guide - CLI, connect, required resource, switch prompt (#209)
v1.9.0
[1.9.0] - 2026-08-30
🚀 Features
- (skill) Sanctioned session-scoped gcx targeting for remote grafana missions (#175)
- (tests) Integration coverage for the configuration surface (#176)
- (skill) Squash-proof tree_anchor in the report contracts (#178)
- (claude) /oddyssey-publish labels the released issues with their version (#182)
🐛 Bug Fixes
- (skill) Grafana reference matches the real gcx CLI - output contract, flag surface, loki over otlp (#174)
- (skill) Check-backend-configuration detects a missing cli binary first (#177)
- (skill) Require and verify application insights on the azure-monitor stack (#180)
- (apm) Add discoverability metadata to pyproject and plugin manifest (#186)
💼 Other
- (deps) Bump mcp from 2.0.0 to 2.1.1 in /src/mcp-server (#185)