# M122 · CC 2.1.118 + 2.1.119 adoption

8 issues ~1810 LOC 2.1.118 2.1.119 single PR

Closes #1499, #1500, #1501, #1502, #1503, #1504, #1505, #1506. Bumps floor 2.1.117 → 2.1.118; ships in 7.70.0.

## What ships per issue

Issue | Phase | CC ver | Deliverable
--- | --- | --- | ---
#1504 | 1 — Foundation | 2.1.118 2.1.119 | Bumps floor; +18 matrix entries; 3 new chain-patterns refs (mcp-tool-hooks.md, pr-from-platform.md, plugin-tag.md)
#1499 | 2 — Telemetry | 2.1.119 | `posttool/failure-handler.ts` reads `input.duration_ms`; otel-fields.md documents the attribute + 3 new query panels
#1500 | 2 — Telemetry | 2.1.119 | otel-fields.md documents `tool_use_id` + `tool_input_size_bytes` with example queries (per-tool latency p50/p95, oversized-input detector, pre/post correlation)
#1501 | 3 — mcp_tool | 2.1.118 | Migration note in `prompt/agentation-context.ts` + canonical reference doc; full hooks.json adoption deferred until floor reliably gates 2.1.118
#1502 | 4 — Multi-host | 2.1.119 | New `lib/pr-host-parser.ts` + 17 unit tests; review-pr / create-pr / fix-issue all gain multi-host notes; configure documents `prUrlTemplate`
#1503 | 5 — bare-eval | 2.1.119 | bare-eval skill notes `--print` agent `tools:` enforcement; migration test pattern
#1505 | 6 — plugin tag | 2.1.118 | release-management / release-checklist / release-sync skills updated; `release-please.yml` runs `claude plugin tag --dry-run` after release_created==true
#1506 | 7 — Closeout | — | CLAUDE.md CC floor bumped; this playground; CHANGELOG bump (handled by release-please)

## Interactive — PR URL parser (CC 2.1.119 multi-host)

Paste any PR / MR URL to see what `parsePrUrl()` from `src/hooks/src/lib/pr-host-parser.ts` returns. Same logic as the production parser used by review-pr / create-pr / fix-issue.

Click Parse URL.

Try these examples:

- `https://github.com/yonatangross/orchestkit/pull/1496` — github
- `https://acme.github.io/team/svc/pull/77` — github-enterprise
- `https://gitlab.com/group/subgroup/project/-/merge_requests/9` — gitlab (nested group)
- `https://gitlab.acme.io/team/repo/-/merge_requests/3` — gitlab-self
- `https://bitbucket.org/workspace/repo/pull-requests/5` — bitbucket

## CC version matrix delta

Version | Entries | Highlights
--- | --- | ---
2.1.117 | 14 (existing) | agent mcpServers main-thread, OTEL effort+command attrs, plugin install auto-deps, Opus 4.7 1M context fix
2.1.118 +6 | 6 (new) | mcp_tool hook type, claude plugin tag, autoMode "$defaults" extension, named themes directory, DISABLE_UPDATES env, /usage merge
2.1.119 +12 | 12 (new) | PostToolUse duration_ms, OTEL tool_use_id + tool_input_size_bytes, --from-pr multi-host, --print agent tools:, prUrlTemplate, /config persistence, statusline effort+thinking, blocked-marketplaces patterns
Total matrix | 365 (was 347) | +18 entries since v7.69.0

## Test plan results

    npm run typecheck                        clean
    npm test (full vitest)                 7911 / 7911 passing
      — cc-version-matrix.test.ts       updated counts (boundary tests for 2.1.118 + 2.1.119)
      — pr-host-parser.test.ts (new)    17 / 17 passing
    npm run test:property                  11 / 11 passing
    npm run test:agents                    all valid
    npm run test:manifests                 counts + ordering + orphans clean
    npm run test:skills                    structure clean
    npm run build                          plugins/ rebuilt

## Out of scope (deferred)

Item | Reason | Tracked as
--- | --- | ---
Vim visual mode | cosmetic | future M123 polish
/cost + /stats → /usage rename | skill-copy update only | future M123 polish
/color claude.ai sync | cosmetic | future M123 polish
CLAUDE_CODE_HIDE_CWD env | niche privacy | future M123 polish
owner/repo#N shorthand uses git remote host | cosmetic | future M123 polish
Real `type: "mcp_tool"` hooks.json adoption | schema needs real-world validation | follow-up after 2.1.118 floor settles
Defensive-input hardening for 5 hooks | property-test surface revealed in M117 | #1497 (M119)

Risk envelope: the most invasive change is bumping the CC floor 2.1.117 → 2.1.118. Users on 2.1.117 will see a doctor warning but no hard failures (matrix-gated features fall back gracefully per the existing `cc-version-matrix.ts` contract). The pilot `type: "mcp_tool"` adoption is documentation-only; no production hooks.json entries depend on it.

## Resources

- `src/hooks/src/lib/cc-version-matrix.ts` — canonical version matrix (365 entries)
- `src/hooks/src/lib/pr-host-parser.ts` — new multi-host URL parser
- `src/skills/chain-patterns/references/mcp-tool-hooks.md` — hook MCP-tool dispatch pattern
- `src/skills/chain-patterns/references/pr-from-platform.md` — multi-host PR pattern
- `src/skills/chain-patterns/references/plugin-tag.md` — `claude plugin tag` integration
- `src/skills/analytics/references/otel-fields.md` — updated with 2.1.119 attributes + 3 new query panels