> For the complete documentation index, see [llms.txt](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/sessions/phase40-session07-connection-probe-parity/tasks.md).

# Task Checklist

**Session ID**: `phase40-session07-connection-probe-parity` **Total Tasks**: 20 **Estimated Duration**: 3-4 hours **Created**: 2026-07-03

***

Legend: `[x]` completed; `[ ]` pending; `[P]` parallelizable; `[SNNMM]` session ref; `TNNN` task ID.

***

## Setup (3 tasks)

* [x] T001 \[S4007] Verify Session 01, Session 02, and Session 06 handoff artifacts, current analyzer state, and connection probe scope (`.spec_system/specs/phase40-session02-models-and-provider-readiness/IMPLEMENTATION_SUMMARY.md`)
* [x] T002 \[S4007] Run focused baseline connection, parser, hook, and component tests before edits (`bunx vitest run scripts/lib/__tests__/hermes-dev-bridge.test.ts src/lib/__tests__/hermes-types.test.ts src/hooks/__tests__/use-hermes.test.tsx src/components/hermes/__tests__/hermes-sections.test.tsx`)
* [x] T003 \[S4007] Inspect current Hermes connection endpoint, provider readiness helpers, CLI resolution helper, and connection UI owner (`scripts/lib/hermes-dev-bridge.ts`)

***

## Foundation (6 tasks)

* [x] T004 \[S4007] Create allowlisted Hermes connection probe definitions for GitHub, Google Workspace, Linear, and Spotify with exact argv arrays (`scripts/lib/hermes-connection-probes.ts`)
* [x] T005 \[S4007] Implement non-shell no-output probe execution with timeout cleanup, ignored stdio, and explicit missing/error/timeout status mapping (`scripts/lib/hermes-connection-probes.ts`)
* [x] T006 \[S4007] Add a 30 second status-only probe cache keyed by probe id and command availability without storing stdout, stderr, env values, paths, accounts, or tokens (`scripts/lib/hermes-connection-probes.ts`)
* [x] T007 \[S4007] Add probe helper tests for success, missing CLI, non-zero exit, timeout, cache hit, cache expiry, and output ignored even when the fake process emits private strings (`scripts/lib/__tests__/hermes-connection-probes.test.ts`)
* [x] T008 \[S4007] Extend Hermes connection body types and parser with skipped-probe summaries for the MCP skip rationale (`src/lib/hermes-types.ts`)
* [x] T009 \[S4007] Add parser tests for expanded connection responses, optional skipped-probe defaults, and malformed skip payload rejection (`src/lib/__tests__/hermes-types.test.ts`)

***

## Implementation (5 tasks)

* [x] T010 \[S4007] Integrate cached CLI probe results into `readHermesConnections()` while preserving provider, auth.json, gateway, generic env-service, and memory rows (`scripts/lib/hermes-dev-bridge.ts`)
* [x] T011 \[S4007] Add browser-safe skipped MCP probe rationale to the connections response without executing `hermes mcp list` (`scripts/lib/hermes-dev-bridge.ts`)
* [x] T012 \[S4007] Add endpoint tests for connected CLI probes, missing probes, timeout probes, duplicate suppression, Notion/Airtable env parsing, MCP skip rationale, and no private output leakage (`scripts/lib/__tests__/hermes-dev-bridge.test.ts`)
* [x] T013 \[S4007] Update `useHermes` connection fixtures and error-state tests for the expanded body while keeping fetch behavior unchanged (`src/hooks/__tests__/use-hermes.test.tsx`)
* [x] T014 \[S4007] Render skipped MCP rationale in the Hermes connection panel as product-facing copy with no diagnostics or command output (`src/components/hermes/hermes-connections.tsx`)

***

## Testing (6 tasks)

* [x] T015 \[S4007] Add component tests for skip-rationale rendering, existing connection filters, and no leaked command details in product copy (`src/components/hermes/__tests__/hermes-sections.test.tsx`)
* [x] T016 \[S4007] Run the focused connection probe suite (`bunx vitest run scripts/lib/__tests__/hermes-connection-probes.test.ts scripts/lib/__tests__/hermes-dev-bridge.test.ts src/lib/__tests__/hermes-types.test.ts src/hooks/__tests__/use-hermes.test.tsx src/components/hermes/__tests__/hermes-sections.test.tsx`)
* [x] T017 \[S4007] Run script and app typechecks for bridge, parser, hook fixture, and component shape changes (`bun run typecheck:scripts && bun run typecheck`)
* [x] T018 \[S4007] Run lint if source or component edits touch linted code paths (`bun run lint`)
* [x] T019 \[S4007] Validate ASCII, LF, and diff whitespace requirements for session changes (`git diff --check`)
* [x] T020 \[S4007] Update implementation notes with shipped probe coverage, cache behavior, MCP skip rationale, and validation evidence (`.spec_system/specs/phase40-session07-connection-probe-parity/implementation-notes.md`)

***

## Completion Checklist

* [x] All tasks marked `[x]`
* [x] All tests and checks passing
* [x] All files ASCII-encoded with LF line endings
* [x] implementation-notes.md updated
* [x] Ready for `creview` (next step in the implement -> creview -> validate sequence)

***

## Next Steps

Run the `implement` workflow step.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/sessions/phase40-session07-connection-probe-parity/tasks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
