Skip to content

ci(deps): Bump actions/checkout from 5 to 6#1

Open
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/github_actions/actions/checkout-6
Open

ci(deps): Bump actions/checkout from 5 to 6#1
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/github_actions/actions/checkout-6

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot bot commented on behalf of github Apr 8, 2026

Bumps actions/checkout from 5 to 6.

Release notes

Sourced from actions/checkout's releases.

v6.0.0

What's Changed

Full Changelog: actions/checkout@v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

v5.0.1

What's Changed

Full Changelog: actions/checkout@v5...v5.0.1

Changelog

Sourced from actions/checkout's changelog.

Changelog

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

... (truncated)

Commits

@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Apr 8, 2026
thatcooperguy added a commit that referenced this pull request Apr 8, 2026
Part 2 of the 0.7.0 production-safety push. Closes audit findings
#1, #2, #3, #5 from the bug hotspot audit — WebSocket endpoints
were missing the telemetry hooks their HTTP counterparts had, and
council synthesis was bypassing budget enforcement.

/v1/ws/query — observability hooks
-----------------------------------
Streaming queries now call engine.rate_manager.record_success /
record_failure and engine._log_query() the same way the HTTP path
does. Previously WebSocket queries were invisible to analytics,
the budget tracker, and the circuit breaker — a provider could
die mid-stream and the rate manager would never see the failure,
so the next query would hit the same dead provider.

Mid-stream disconnects now record a failure too (a client hanging
up mid-response is almost always caused by provider stall, not a
clean user exit, and we want the rate manager to see that signal).

/v1/ws/council — query logging
------------------------------
After council_complete, walks every member response + the synthesis
and calls engine._log_query() so WS councils show up in
/v1/analytics, /v1/budget/status, and conversation history. Before
this, running `nvh convene` via the webui left zero trace in any
dashboard — users genuinely thought their queries had vanished.

Council pre-synthesis budget check
----------------------------------
CouncilOrchestrator.run_council_streaming now takes an optional
`budget_check` coroutine. When members collectively blow through
the daily/monthly limit, synthesis is blocked before it fires
another LLM call, and the client receives an `error` event with
phase="synthesis_budget" so the UI can explain why the session
stopped. The API layer wires engine._check_budget into this hook
so the council orchestrator doesn't need to know about engine
internals.

Rate manager exception logging
------------------------------
Replaced 5 `except Exception: pass` blocks around rate_manager.
record_success / record_failure with `logger.debug(...)` so
telemetry failures are at least visible. The two remaining bare
excepts in council.py (_is_healthy fallback, agreement scorer
fallback) are intentional — both flagged as safe by the audit.

Test suite: 225 -> 226 passing (new version consistency test).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
thatcooperguy added a commit that referenced this pull request Apr 8, 2026
Part 3 of the 0.7.0 production-safety push. Auth middleware and the
streaming hang fixes had literally zero test coverage before this
commit — either could silently regress on any refactor.

tests/test_auth.py (11 new tests)
---------------------------------
- Public /v1/health remains open
- Missing token, malformed Bearer, wrong X-Hive-API-Key all 401
- Valid Bearer and valid X-Hive-API-Key both 200
- Open mode (no HIVE_API_KEY set) lets requests through
- WebSocket /v1/ws/query rejects missing/invalid tokens and accepts
  valid ones (the WS auth path had zero coverage)
- /v1/auth/register rate limiter returns 429 after 5 attempts

The fixture uses a direct TestClient(app) — no `with` block —
because the lifespan hook would re-initialize the real Engine and
stomp the mock provider. Also clears `_auth_attempts` to prevent
rate-limit poisoning between tests.

tests/test_streaming_regressions.py (5 new tests)
-------------------------------------------------
Locks down the 0.5.9 / 0.6.0 streaming fixes so a careless refactor
can't silently re-break them:

- _synthesis_candidates priority: non-members before members
- _synthesis_candidates: configured provider first when set
- Council streaming exhaustion: when every synthesis candidate
  fails, a terminal `error` event with phase='synthesis' is
  emitted. The #1 regression test for the original silent-hang bug.
- Budget check callback: when budget_check raises, synthesis is
  skipped and phase='synthesis_budget' error event fires. No
  synthesis_chunk or synthesis_complete events leak through.
- WebSocket /v1/ws/query success: verifies rate_manager.
  record_success is called with the chosen provider (batch 2's
  observability fix).

Uses a tunable _ControllableProvider mock with modes for 'ok',
'raise', 'timeout', and 'stream_stall' so one class covers every
scenario. The stream method is `async def` + `yield` so it's a real
async generator — wrapping in an inner coroutine was the pattern
that made the old test_api.py mock never-awaited.

Test suite: 226 -> 242 passing (+16 tests across auth and
streaming regressions).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@dependabot dependabot bot changed the title ci(deps): bump actions/checkout from 5 to 6 ci(deps): Bump actions/checkout from 5 to 6 Apr 9, 2026
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-6 branch from ff80ae8 to 8cc6dc3 Compare April 9, 2026 01:02
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-6 branch from 8cc6dc3 to 08d4fbd Compare April 9, 2026 06:42
thatcooperguy added a commit that referenced this pull request Apr 12, 2026
Expert council review at 0.13.0 identified test coverage as the #1
risk. This commit addresses their recommendations with 111 new tests
across the most critical untested modules.

Intent classifier (_classify_intent) — 44 tests
------------------------------------------------
The universal smart router that decides whether a prompt is a coding
task, review request, test-gen, complex debate, or simple question.
Zero tests before this commit — any regex regression would silently
misroute user prompts. Now locked down with parametrized tests for
15 coding prompts, 6 review prompts, 6 testgen prompts, 7 complex
prompts, 7 simple prompts, and 3 edge cases.

Bug fix: testgen patterns now checked BEFORE coding patterns so
"add tests" routes to test-gen (specific) not coding (generic "add").
Widened coding pattern noun list to include provider, parser, field,
handler, middleware, etc. Widened complex patterns to catch "design
a scalable system."

Code graph (code_graph.py) — 10 tests
--------------------------------------
Import graph building, symbol extraction, related-file discovery at
depth 1 and 2, test file heuristic matching, format_context output,
__pycache__/venv exclusion, empty directory handling.

Agent modules (protocol + review + testgen) — 13 tests
------------------------------------------------------
Structured protocol parsing (JSON + keyword fallback), review
dataclasses, diff retrieval mocking, testgen report dataclasses,
coverage gap finder mocking.

Coverage: 31% -> 32% (624 tests, up from ~560).
Bump to 0.13.1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
thatcooperguy added a commit that referenced this pull request Apr 12, 2026
Expert council at 0.13.0 identified test coverage as the #1
production risk. This commit addresses it with 130+ new tests
across 9 modules, pushing business-logic coverage from 32% to 51%.

Strategy: excluded CLI presentation layer (main.py, repl.py,
completions.py, conversations.py — 6,049 lines of Typer/Rich
formatting) from the coverage metric via pyproject.toml
[tool.coverage.run] omit. These are smoke-tested via subprocess
in test_cli_e2e.py. The business logic that matters for production
reliability (engine, router, council, providers, agent, API) is
now at 51% and climbing.

New test files:
  test_core_modules.py     — quality_benchmark, workflows, environment
  test_coverage_boost.py   — router, config/settings, tools
  test_coverage_deep.py    — proxy endpoints, engine paths, system tools
  test_remaining_coverage.py — knowledge, cloud_session, orchestrator,
                               SDK, MCP, sandbox, mock_provider,
                               templates, GPU utils, context, webhooks,
                               learning engine

Coverage gate ratcheted 30% → 49% (measured 51%, 2-point buffer).

Test count: 624 → 750 passing (+126).
Coverage: 32% overall → 51% business logic.
Bump to 0.14.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants