Skip to content

chore: update @probelabs/probe to v0.6.0-rc294#524

Merged
buger merged 1 commit into
mainfrom
update-probe-v0.6.0-rc294
Mar 11, 2026
Merged

chore: update @probelabs/probe to v0.6.0-rc294#524
buger merged 1 commit into
mainfrom
update-probe-v0.6.0-rc294

Conversation

@probelabs
Copy link
Copy Markdown
Contributor

@probelabs probelabs Bot commented Mar 11, 2026

This PR updates @probelabs/probe to version v0.6.0-rc294.

Triggered by release: probelabs/probe@v0.6.0-rc294

Changes

  • Updates @probelabs/probe dependency to v0.6.0-rc294

🤖 Auto-generated by release workflow

@buger buger merged commit d83901a into main Mar 11, 2026
9 checks passed
@probelabs
Copy link
Copy Markdown
Contributor Author

probelabs Bot commented Mar 11, 2026

PR Overview: Update @probelabs/probe to v0.6.0-rc294

Summary

This PR updates the @probelabs/probe dependency from version 0.6.0-rc293 to 0.6.0-rc294. This is a routine dependency update triggered by the probelabs/probe release workflow.

Files Changed

package.json

  • Line 122: Updated @probelabs/probe version from ^0.6.0-rc293 to ^0.6.0-rc294

package-lock.json

  • Line 35: Updated @probelabs/probe version reference from 0.6.0-rc293 to 0.6.0-rc294
  • Lines 5672-5674: Updated the npm registry entry for @probelabs/probe:
    • Version: 0.6.0-rc2930.6.0-rc294
    • Integrity hash updated to new package signature
    • Resolved URL points to new .tgz file

Architecture & Impact Assessment

What This PR Accomplishes

  • Bumps the core AI agent library (@probelabs/probe) to the latest release candidate
  • Maintains compatibility with the Visor codebase through semver-compatible version update

Key Technical Changes

  • No code changes required - This is a dependency-only update
  • The @probelabs/probe package is used extensively throughout Visor for:
    • ProbeAgent class for AI/LLM interactions
    • SimpleTelemetry and SimpleAppTracer for tracing
    • extract utility for diff processing
    • DelegationManager for concurrency control

Affected System Components

graph TD
    A[Visor Core] --> B[AI Review Service]
    A --> C[LLM Judge]
    A --> D[Diff Processor]
    A --> E[Tracer Init]
    A --> F[Session Registry]
    
    B --> G["@probelabs/probe"]
    C --> G
    D --> G
    E --> G
    F --> G
    
    G --> H[ProbeAgent]
    G --> I[SimpleTelemetry]
    G --> J[SimpleAppTracer]
    G --> K[DelegationManager]
    G --> L[extract utility]

Loading

Usage Locations in Codebase

The @probelabs/probe package is imported and used in:

  • src/ai-review-service.ts - Main AI review orchestration
  • src/test-runner/llm-judge.ts - LLM-based test evaluation
  • src/utils/diff-processor.ts - Diff extraction utilities
  • src/utils/tracer-init.ts - Telemetry initialization
  • __mocks__/@probelabs/probe.ts - Test mocks
  • Various test files for unit/integration/e2e testing

Scope Discovery & Context Expansion

Related Files (No Changes Required)

  • Tests: All test files using @probelabs/probe mocks should continue to work
  • Configuration: No configuration changes needed - version bump is transparent
  • CI/CD: The scripts/inject-version.js script automatically detects Probe version from package-lock.json

Potential Areas to Verify

  1. AI Review Service (src/ai-review-service.ts) - Core consumer of ProbeAgent
  2. LLM Judge (src/test-runner/llm-judge.ts) - Uses ProbeAgent for evaluation
  3. Telemetry (src/utils/tracer-init.ts) - Uses SimpleTelemetry/SimpleAppTracer
  4. Test mocks (__mocks__/@probelabs/probe.ts) - Ensure mock API aligns with new version

Version Injection

The scripts/inject-version.js build script automatically extracts the Probe version from package-lock.json and injects it into the distributed bundle as process.env.PROBE_VERSION. This ensures version tracking without manual updates.

Risk Assessment

  • Risk Level: Low
  • Breaking Changes: None expected (rc293 → rc294 within same 0.6.0 series)
  • Test Coverage: Existing unit/integration/e2e tests should validate compatibility
  • Rollback: Simple - revert to previous commit if issues arise

References

  • package.json:122 - Dependency declaration
  • package-lock.json:35,5672-5674 - Locked version and integrity hash
  • src/ai-review-service.ts:1-3 - ProbeAgent import
  • src/test-runner/llm-judge.ts:140-175 - ProbeAgent usage in LLM judge
  • src/utils/diff-processor.ts:1-2 - extract utility import
  • src/utils/tracer-init.ts:25-40 - SimpleTelemetry/SimpleAppTracer usage
  • __mocks__/@probelabs/probe.ts:3-91 - Mock implementations
  • scripts/inject-version.js:28-38 - Version detection from package-lock
Metadata
  • Review Effort: 1 / 5
  • Primary Label: chore

Powered by Visor from Probelabs

Last updated: 2026-03-11T13:39:09.380Z | Triggered by: pr_opened | Commit: d66b77f

💡 TIP: You can chat with Visor using /visor ask <your question>

@probelabs
Copy link
Copy Markdown
Contributor Author

probelabs Bot commented Mar 11, 2026

✅ Security Check Passed

No security issues found – changes LGTM.

✅ Architecture Check Passed

No architecture issues found – changes LGTM.

✅ Performance Check Passed

No performance issues found – changes LGTM.


Powered by Visor from Probelabs

Last updated: 2026-03-11T13:39:02.714Z | Triggered by: pr_opened | Commit: d66b77f

💡 TIP: You can chat with Visor using /visor ask <your question>

buger added a commit that referenced this pull request Mar 17, 2026
Replace budget-capping approach with event-driven deadline extension.
Probe #524 emits timeout.extended/windingDown events — Visor now listens
and dynamically adjusts its withTimeout deadline to stay in sync with
the agent's negotiated extensions.

- Add TimeoutExtender class bridging agent events → withTimeout
- Make withTimeout deadline dynamic (resets timer on extension)
- Remove budget/maxPerRequest headroom capping (no longer needed)
- Add wireTimeoutEvents() for timeout.extended + windingDown telemetry
- Update @probelabs/probe to 0.6.0-rc297
- Rewrite tests: 14 tests covering extensions, wind-down, trace replay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
buger added a commit that referenced this pull request Mar 17, 2026
* feat: add remote HTTP transport for MCP server

Add --transport http mode to `visor mcp-server` using the MCP SDK's
StreamableHTTPServerTransport. Includes mandatory Bearer token auth
(timing-safe), optional TLS, CORS support, and per-session transport
management. Default remains stdio for backward compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add remote HTTP transport for MCP server

Add --transport http mode to `visor mcp-server` using the MCP SDK's
StreamableHTTPServerTransport. Includes mandatory Bearer token auth
(timing-safe), optional TLS, CORS support, and per-session transport
management. Default remains stdio for backward compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add @utcp/* mock stubs so UTCP tests can resolve modules

The @utcp/sdk, @utcp/http, and @utcp/file packages are optional
dependencies not installed locally. Added moduleNameMapper entries
and stub mocks so Jest can resolve them, allowing tests that
jest.mock() these modules to actually run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: support multiple frontends in parallel via RunnerHost

Replace ~660 lines of duplicated per-frontend boilerplate in cli-main.ts
with a unified RunnerHost that orchestrates any combination of runners
(--slack --telegram --mcp --a2a etc.) in parallel from a single process.

- Add Runner interface and RunnerHost orchestrator (src/runners/)
- Add runner factory encapsulating per-frontend config extraction
- Add McpServerRunner wrapping MCP HTTP server as composable runner
- Extract shared telemetry init into reusable helper
- Add implements Runner + readonly name to all 5 existing runners
- Refactor mcp-server.ts: extract createHttpMcpServer() returning handle
- Add --mcp, --mcp-port, --mcp-auth-token CLI flags
- Add RunnerHost unit tests (7 tests)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: make MCP server runner a proper conversational frontend

- Rewrite McpServerRunner to dispatch messages through the engine
  (like Slack/Telegram) instead of running raw code analysis
- Build mcp_conversation context and pass via webhookData
- Extract mcp_conversation in level-dispatch.ts for both map-fanout
  and single-check code paths
- Fix response extraction: unwrap trackExecution envelope, pick
  longest .text from history (final AI response, not routing intent)
- Handle session expiry per MCP spec (404 + JSON-RPC error)
- Add OTel tracing via withVisorRun for MCP route
- Add 'mcp' to TaskSource type, 'mcp_server' to allowed config keys
- Update runner-factory to pass engine+config to new constructor
- Add comprehensive tests (28 test cases)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: graceful_stop should not signal the parent/caller session

When the timeout observer triggers graceful_stop on the MCP bridge,
it was signaling ALL registered ProbeAgent sessions including the
parent agent that owns the bridge. This caused the parent to wind
down with empty history (history_length=0) while its child workflow
tools were still running, producing a generic timeout message instead
of summarizing actual results.

Now the bridge skips the session matching its own sessionId (the
parent/caller), so only child workflow sessions get the wind-down
signal. Children return partial results via the MCP tool response,
giving the parent actual data before its own wind-down.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: cap negotiated timeout extensions to visor_timeout and signal wind-down on hard kill

Two fixes for timeout management:

1. Cap negotiated_timeout_budget and max_per_request to the headroom
   between ai_timeout and visor_timeout (visor_timeout - ai_timeout).
   Previously, the observer could grant extensions past visor_timeout,
   suppressing wind-down while the hard kill fires with no partial results.
   (Trace: explore-code got +10min extension at 25min but hard-killed at 30min)

2. withTimeout now accepts sessionId and calls triggerGracefulWindDown()
   on the ProbeAgent before rejecting. Previously, Promise.race just
   rejected with no signal, giving the agent zero chance to summarize.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: dynamic timeout extension via Probe timeout.extended events

Replace budget-capping approach with event-driven deadline extension.
Probe #524 emits timeout.extended/windingDown events — Visor now listens
and dynamically adjusts its withTimeout deadline to stay in sync with
the agent's negotiated extensions.

- Add TimeoutExtender class bridging agent events → withTimeout
- Make withTimeout deadline dynamic (resets timer on extension)
- Remove budget/maxPerRequest headroom capping (no longer needed)
- Add wireTimeoutEvents() for timeout.extended + windingDown telemetry
- Update @probelabs/probe to 0.6.0-rc297
- Rewrite tests: 14 tests covering extensions, wind-down, trace replay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: prevent empty GitHub comments when template rendering returns no content

When the issue-assistant template rendering fails to produce content,
the GitHub frontend now falls back to extracting text from the AI
output object (ev.result.output.text). Added diagnostic logging to
template-renderer for future debugging, and improved forEach output
aggregation in the runner.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: remove newlines from E2E test mock text to avoid JSON parse error

The MOCK_AI_TEXT contained \n characters that broke the shell echo
command's JSON output on CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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