Skip to content

[v0.8.1-dev.2] Augment MCP host support & CLI logging improvements#48

Merged
LittleCoinCoin merged 7 commits intoCrackingShells:devfrom
LittleCoinCoin:dev
Mar 4, 2026
Merged

[v0.8.1-dev.2] Augment MCP host support & CLI logging improvements#48
LittleCoinCoin merged 7 commits intoCrackingShells:devfrom
LittleCoinCoin:dev

Conversation

@LittleCoinCoin
Copy link
Copy Markdown
Member

Features

Augment Code MCP host support

Adds full MCP host support for Augment Code, covering the complete adapter contract:

  • MCPHostType.AUGMENT enum value and AUGMENT_FIELDS constant (mirrors Claude field set: command, args, env, url, headers, type)
  • AugmentAdapter — validates exactly-one transport (command XOR url) and type-field consistency; no structural transforms needed
  • AugmentHostStrategy — extends ClaudeHostStrategy targeting ~/.augment/settings.json with the mcpServers key; same JSON format and settings-preservation logic as the Claude family; None on native Windows (WSL uses the Linux path)
  • Wired into all four integration points: adapter __init__, AdapterRegistry, BackupInfo, and reporting
  • Auto-generates 19+ new test cases from existing fixtures (roundtrip, cross-host sync pairs, transport mutual exclusion, field filtering)

--log-level global flag

All hatch commands previously emitted one or more INFO-level log lines (with full timestamps and logger names) before any meaningful output, regardless of whether anything was actually happening. Root cause: 8 modules called self.logger.setLevel(logging.INFO) on their own loggers, bypassing root-level filtering entirely.

Fixed by removing the per-module setLevel overrides and defaulting basicConfig to WARNING. Operational logs remain fully accessible via --log-level INFO.

New top-level flag accepted by all commands:

hatch --log-level {DEBUG,INFO,WARNING,ERROR} <command>

Default is WARNING — operational INFO messages are available on demand without cluttering normal output.

Transient registry cache status

When the registry cache is stale and a network fetch is required, a dim status line now appears on stderr and is overwritten as soon as the table renders — no persistent log noise, fully silent when output is piped or in CI:

  Refreshing registry cache...

Bug Fixes

MCP host adapter validation and test coverage gaps (fix(mcp-hosts))

Adversarial review of the Augment integration surface revealed three pre-existing gaps:

  • EnvironmentPackageEntry.validate_host_names() was missing "codex", silently rejecting any package configured for the Codex host
  • test_adapter_protocol.py ALL_ADAPTERS and HOST_ADAPTER_MAP still reflected the pre-Augment/OpenCode 8-host list, meaning the AP-01…AP-06 protocol tests never exercised the two newest adapters
  • AdapterRegistry docstring example showed stale 8-host output

LittleCoinCoin and others added 6 commits February 27, 2026 00:21
The skill's Step 5 only covered data-driven fixtures (canonical_configs.json
and host_registry.py), missing the static ALL_ADAPTERS and HOST_ADAPTER_MAP
lists in test_adapter_protocol.py. Without this section, new hosts pass all
tests while silently lacking AP-01…AP-06 protocol compliance coverage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@LittleCoinCoin LittleCoinCoin reopened this Mar 4, 2026
@LittleCoinCoin LittleCoinCoin merged commit 0bc06fb into CrackingShells:dev Mar 4, 2026
2 of 3 checks passed
cracking-shells-semantic-release bot pushed a commit that referenced this pull request Mar 4, 2026
## <small>0.8.1-dev.2 (2026-03-04)</small>

* Merge branch 'feat/augment-mcp-host-support' into dev ([67bb767](67bb767))
* Merge branch `milestone/fix-logging-clutter` into dev ([5fd15dd](5fd15dd))
* Merge pull request #48 from LittleCoinCoin/dev ([0bc06fb](0bc06fb)), closes [#48](#48)
* docs(adding-mcp-hosts): add test_adapter_protocol.py to fixture guide ([3a58908](3a58908))
* docs(logging): expose --log-level flag in CLI reference global options ([5aa2e9d](5aa2e9d))
* feat(cli): add --log-level flag and default log output to WARNING ([1e3817f](1e3817f))
* feat(mcp-augment): add enum value and constant ([8b22594](8b22594))
* feat(mcp-augment): implement AugmentAdapter ([5af34d1](5af34d1))
* feat(mcp-augment): implement AugmentHostStrategy ([b13d9d0](b13d9d0))
* feat(mcp-augment): wire AugmentAdapter into integration points ([367b736](367b736))
* feat(registry): add transient dim status on cache refresh ([09dd517](09dd517))
* refactor(logging): remove forced setLevel(INFO) from all module loggers ([fb2ee4c](fb2ee4c))
* refactor(registry): demote startup and fetch INFO logs to DEBUG ([df97e58](df97e58))
* fix(mcp-hosts): close validation and test coverage gaps ([9d7f0e5](9d7f0e5))
* test(mcp-augment): register test fixtures and update tests ([294d0d8](294d0d8))
* chore: clean up temporary reports ([038be8c](038be8c))
cracking-shells-semantic-release bot pushed a commit that referenced this pull request Apr 1, 2026
## <small>0.8.1 (2026-04-01)</small>

* Merge branch 'feat/augment-mcp-host-support' into dev ([67bb767](67bb767))
* Merge branch 'feat/opencode-mcp-host-support' into dev ([793707d](793707d))
* Merge branch 'milestone/adding-mcp-hosts-skill' into dev ([bce3851](bce3851))
* Merge branch 'task/update-extension-guide' into milestone/mcp-docs-refresh ([d2a0df9](d2a0df9))
* Merge branch 'task/write-adapter-contract' into milestone/adding-mcp-hosts-skill ([c639322](c639322))
* Merge branch 'task/write-skill-md' into milestone/adding-mcp-hosts-skill ([d618f71](d618f71))
* Merge branch 'task/write-strategy-contract' into milestone/adding-mcp-hosts-skill ([13b195c](13b195c))
* Merge branch 'task/write-testing-fixtures' into milestone/adding-mcp-hosts-skill ([3cc4175](3cc4175))
* Merge branch `milestone/fix-logging-clutter` into dev ([5fd15dd](5fd15dd))
* Merge pull request #47 from LittleCoinCoin/dev ([9d873aa](9d873aa)), closes [#47](#47)
* Merge pull request #48 from LittleCoinCoin/dev ([0bc06fb](0bc06fb)), closes [#48](#48)
* Merge pull request #49 from LittleCoinCoin/dev ([73666d9](73666d9)), closes [#49](#49)
* Merge pull request #50 from LittleCoinCoin/dev ([8f6c5f8](8f6c5f8)), closes [#50](#50)
* Merge pull request #51 from CrackingShells/dev ([dfbe031](dfbe031)), closes [#51](#51)
* chore: clean up temporary reports ([038be8c](038be8c))
* chore: cleanup `__reports__/` ([1056e52](1056e52))
* chore: move skills directory location ([f739fed](f739fed))
* chore: update cs-playbook submodule ([c544cb3](c544cb3))
* chore(git): add .DS_Store to .gitignore ([cff376a](cff376a))
* chore(release): 0.8.1-dev.1 ([e31b347](e31b347))
* chore(release): 0.8.1-dev.2 ([3f58954](3f58954))
* chore(release): 0.8.1-dev.3 [skip ci] ([7aaa6eb](7aaa6eb))
* chore(release): 0.8.1-dev.4 [skip ci] ([f7221c3](f7221c3))
* chore(release): 0.8.1-dev.5 [skip ci] ([c605bc7](c605bc7))
* chore(release): 0.8.1-dev.6 [skip ci] ([10a2e48](10a2e48))
* chore(roadmap): add adding-mcp-hosts-skill campaign ([e48ea10](e48ea10))
* chore(skill): package adding-mcp-hosts skill ([e5fbfa2](e5fbfa2))
* docs: correct Mistral Vibe terminology to CLI coding agent ([bfa8b9b](bfa8b9b))
* docs(adding-mcp-hosts): add test_adapter_protocol.py to fixture guide ([3a58908](3a58908))
* docs(adding-mcp-hosts): use parallel research over priority ladder ([6f6165a](6f6165a))
* docs(cli): update to match current CLI state ([2d75bcd](2d75bcd))
* docs(entry-docs): refresh content for primary use case identification ([d4d0bb9](d4d0bb9))
* docs(known-issues): sync appendix with v0.8.1 codebase state ([ed98ea4](ed98ea4))
* docs(logging): expose --log-level flag in CLI reference global options ([5aa2e9d](5aa2e9d))
* docs(mcp-host-config): surface opencode and augment in all host lists ([dbdba35](dbdba35))
* docs(mcp-hosts): add mistral vibe to supported platforms ([5130c84](5130c84))
* docs(mcp-hosts): capture mistral vibe host analysis ([4ff2758](4ff2758))
* docs(mcp): document strategy, registration, and variant pattern ([21c30d5](21c30d5))
* docs(mcp): rewrite testing section with data-driven docs ([5fc6f97](5fc6f97))
* docs(mcp): rewrite testing section with data-driven infra ([24c6ebf](24c6ebf))
* docs(mcp): update adapter template to validate_filtered() ([69d61cc](69d61cc))
* docs(mcp): update field support matrix and field mapping documentation ([c08e064](c08e064))
* docs(mcp): update strategy template with interface docs ([0b83b6e](0b83b6e))
* docs(roadmap): add mcp-docs-refresh task files and gap analysis ([896f4d2](896f4d2))
* docs(roadmap): mark adding-mcp-hosts-skill campaign as done ([b7e6c95](b7e6c95))
* docs(roadmap): mark mcp-docs-refresh tasks as done ([fc07cd1](fc07cd1))
* style(docs): add CrackingShells brand theme stylesheets for MkDocs ([c5cec5b](c5cec5b))
* style(docs): apply CrackingShells org theme to MkDocs ([7749d48](7749d48))
* fix(ci): inline pypi publish jobs to satisfy trusted publishing ([fc81e78](fc81e78))
* fix(ci): rename caller workflow to match pypi trusted publisher ([7d2634d](7d2634d))
* fix(mcp-hosts): add explicit HTTP transport type for Claude URL-based co ([62f99cf](62f99cf))
* fix(mcp-hosts): always set HTTP transport type for Claude URL-based conf ([904f22b](904f22b))
* fix(mcp-hosts): close validation and test coverage gaps ([9d7f0e5](9d7f0e5))
* fix(mcp-hosts): remove redundant Claude Desktop/Code URL validation ([d6a75a8](d6a75a8))
* fix(mcp-opencode): anchor JSONC comment regex in write_configuration ([a35d3a2](a35d3a2))
* fix(mcp-opencode): anchor JSONC comment regex to line start ([d8f3a75](d8f3a75))
* fix(mcp-opencode): make serialize() canonical-form; add test fixes ([ee1d915](ee1d915))
* test(mcp-augment): register test fixtures and update tests ([294d0d8](294d0d8))
* test(mcp-fixtures): add opencode entry to canonical_configs.json ([5ae3b57](5ae3b57))
* test(mcp-fixtures): register opencode in host_registry.py ([734b3c0](734b3c0))
* test(mcp-hosts): keep mistral vibe in shared adapter coverage ([1a81ae0](1a81ae0))
* test(mcp): add fixture for claude remote setup ([d1cc2b0](d1cc2b0))
* test(mcp): fix whitespace in Claude transport serialization test ([b5c7191](b5c7191))
* feat(cli): add --log-level flag and default log output to WARNING ([1e3817f](1e3817f))
* feat(cli): let shared mcp configure target mistral vibe ([0e801d0](0e801d0))
* feat(mcp-adapter): add OpenCodeAdapter with serialize transforms ([28e3bdf](28e3bdf))
* feat(mcp-augment): add enum value and constant ([8b22594](8b22594))
* feat(mcp-augment): implement AugmentAdapter ([5af34d1](5af34d1))
* feat(mcp-augment): implement AugmentHostStrategy ([b13d9d0](b13d9d0))
* feat(mcp-augment): wire AugmentAdapter into integration points ([367b736](367b736))
* feat(mcp-fields): add OPENCODE_FIELDS constant ([b9ddf43](b9ddf43))
* feat(mcp-hosts): let hatch manage mistral vibe configs ([f213971](f213971))
* feat(mcp-models): add opencode oauth fields to MCPServerConfig ([2bae600](2bae600))
* feat(mcp-registry): register OpenCodeAdapter in adapter registry ([20e0fc8](20e0fc8))
* feat(mcp-strategy): add OpenCodeHostStrategy with JSONC read/write ([8bb590a](8bb590a))
* feat(mcp-wiring): add opencode to backup and reporting ([7d0b075](7d0b075))
* feat(registry): add transient dim status on cache refresh ([09dd517](09dd517))
* feat(skill): add adapter contract reference ([336fced](336fced))
* feat(skill): add discovery guide reference ([8061c5f](8061c5f))
* feat(skill): add strategy contract reference ([cf9b807](cf9b807))
* feat(skill): add testing fixtures reference ([070894c](070894c))
* feat(skill): write SKILL.md with 5-step workflow ([8984a3a](8984a3a))
* ci: semantic-release streamlining ([db0fb91](db0fb91))
* refactor(logging): remove forced setLevel(INFO) from all module loggers ([fb2ee4c](fb2ee4c))
* refactor(registry): demote startup and fetch INFO logs to DEBUG ([df97e58](df97e58))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant