Skip to content

audit: Phase 4 — final shell wave (mcp-config, cli, mcp-server)#69

Merged
Nelson Spence (Fieldnote-Echo) merged 5 commits intomainfrom
audit/final-shell-wave
Mar 15, 2026
Merged

audit: Phase 4 — final shell wave (mcp-config, cli, mcp-server)#69
Nelson Spence (Fieldnote-Echo) merged 5 commits intomainfrom
audit/final-shell-wave

Conversation

@Fieldnote-Echo
Copy link
Copy Markdown
Member

Summary

  • 30/30 CURRENT. Final three audit units complete the full-sweep audit framework.
  • 3 scorecards: mcp-config (7.8), cli (7.6), mcp-server (7.7) — all Adequate, no gates fired
  • 1 LOW finding (F-CLI-01): silent fallback to "local" transport on invalid interactive input
  • 3 direct tests added for _load_config edge cases (malformed JSON, non-dict root, missing file)
  • LLM timeout delegation to MCP client documented as design observation (architecturally consistent, not a finding)

Commits

Commit Content
6216aca 3 direct tests for _load_config edge cases
e7339cd mcp-config scorecard — 7.8/10 Adequate
d58661b cli scorecard — 7.6/10 Adequate, F-CLI-01 (LOW)
6a92ce7 mcp-server scorecard — 7.7/10 Adequate
3cb362d FRESHNESS.md → 30/30 CURRENT

Test plan

  • uv run pytest tests/ -v — 1136 passed, 0 failed
  • All pre-commit hooks pass on every commit
  • FRESHNESS.md has zero NEVER entries
  • Scores sum correctly in all 3 scorecards
  • Gate evaluations match dimension scores

🤖 Generated with Claude Code

Add 3 direct tests for _load_config: malformed JSON, non-dict root,
and missing file. Previously only exercised implicitly through
add_to_client/is_configured.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Infrastructure/config unit. 169 LOC, 22 tests. Score: 7.8/10 Adequate.
No findings. stdlib-only leaf with comprehensive graceful degradation.
All _load_config edge cases (malformed JSON, non-dict root, missing
file) directly tested.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Infrastructure/boundary unit. 240 LOC, 29 tests. Score: 7.6/10 Adequate.
One LOW finding: F-CLI-01 — silent fallback to "local" transport on
invalid interactive input. Lazy imports verified. IN-B01/IN-B04 N/A
(no subprocess, no external calls).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Infrastructure/boundary unit. 232 LOC, 29 tests. Score: 7.7/10 Adequate.
No findings. Core invariant (all paths return JSON) verified across all
29 tests. LLM timeout delegation to MCP client documented as design
observation. Relay role in CH-1/CH-4 confirmed — no anchor ownership.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mark mcp-config, cli, mcp-server as CURRENT. 30/30 units audited.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project-navi-bot project-navi-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All required CI checks passed. Auto-approved by navi-bot.

Copy link
Copy Markdown
Collaborator

@project-navi-bot project-navi-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All required CI checks passed. Auto-approved by navi-bot.


## Compound Chain Exposure

None identified. cli (`__main__.py`) is a pure dispatch layer. It routes to `mcp_server.main()`, `review.main()`, and `mcp_config` functions. It does not process untrusted input, touch PR content, or participate in the review pipeline data flow. All 5 known chains (CH-1 through CH-5) operate entirely within the downstream modules.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 LOW: Silent fallback to 'local' transport on invalid CLI input

Confidence: 95%

When a user enters an invalid value during interactive transport selection in the CLI (e.g., a non-integer or out-of-range index), the code silently defaults to 'local' transport without notifying the user. This could mask operator intent and may only be noticed after an unexpected failure or behavior.

Suggestion: Update the CLI to print a warning or message when an invalid choice is entered and fallback occurs. For example, print the selected transport or a warning when falling back to default, such as: print(f" Invalid choice, defaulting to: {transport}") after the except block.

— Masks operator intent. Best practice: warn explicitly when falling back on user error. Minor but worth fixing.

@github-actions
Copy link
Copy Markdown
Contributor

✅ Grippy Review — PASS

Score: 98/100 | Findings: 1

Delta: 1 new


Commit: 3cb362d

Copy link
Copy Markdown
Collaborator

@project-navi-bot project-navi-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All required CI checks passed. Auto-approved by navi-bot.

Copy link
Copy Markdown
Collaborator

@project-navi-bot project-navi-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All required CI checks passed. Auto-approved by navi-bot.

@Fieldnote-Echo Nelson Spence (Fieldnote-Echo) merged commit 2105161 into main Mar 15, 2026
18 checks passed
@Fieldnote-Echo Nelson Spence (Fieldnote-Echo) deleted the audit/final-shell-wave branch March 15, 2026 05:22
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

2 participants