CASE 02 / DEVELOPER TOOL

ACTIVE v0.1.0

智能体脉搏 · 2026 · M4 VALIDATION

AGENTPULSE

A privacy-first observability layer for coding agents working across devices.

统一观察 Claude Code 与 Codex 会话状态,同时默认不上传 Prompt、代码和完整路径。

3,000Sessions in M4 workload

Deterministic multi-device validation workload backed by PostgreSQL 18.4.

12Independent devices

Signed registration, owner isolation, replay and query boundaries were exercised together.

35Real Codex sessions

Observed through a local Codex CLI 0.144.2 read-only collection run.

2sActive polling cadence

Falls back to a calmer 10-second cadence when no session is active.

01 / Product evidence

See the system at work.

Captured from the working product and its repository-backed preview states.

AgentPulse session table grouped by working, waiting, completed and failed states
02 / SESSION QUEUE

A shared state model makes Codex and Claude Code sessions comparable without mirroring their transcripts.

AgentPulse device health screen with runner versions and connection status
03 / DEVICE HEALTH

Runner health, versions and last contact are visible independently from the work being observed.

02 / Problem and response

Role
Product design · protocol · Rust runner · gateway · Web/PWA · native Android

Parallel coding agents create an attention problem, but conventional telemetry would expose exactly the private material the tool is meant to protect.

Collect a strict metadata allow-list locally, sign ordered batches on device, survive disconnection in a SQLite outbox and render confidence-aware state remotely.

03 / System trace

How the system moves.

  1. 01

    Observe

    Claude and Codex adapters read official interfaces and local hooks without starting or controlling sessions.

  2. 02

    Normalize

    Raw states become a shared presence/activity model with source and confidence attached.

  3. 03

    Queue

    A device-local SQLite outbox preserves ordered events through restarts and network failure.

  4. 04

    Verify

    The gateway checks schema, device identity, Ed25519 signatures and monotonic sequence before storage.

  5. 05

    Focus

    Web and Android surfaces emphasize sessions that need a human decision instead of mirroring transcripts.

04 / Engineering decisions

The important work happened at the boundaries.

01

Model presence and activity separately

A persisted historical session is not the same thing as an active task. Keeping both axes avoids fabricated certainty.

02

Use an allow-list protocol

Unknown fields are rejected instead of silently becoming a new route for code, prompts or credentials.

03

Keep collection and sync failure independent

Network backoff cannot block local observation; new events continue accumulating safely in the outbox.

05 / Proof, not promise

These statements come from the project's local repository, manifests and validation notes—not invented portfolio metrics.

Privacy fixtures

Fixtures containing prompts, titles, commands, messages and path markers are asserted absent after adapter → outbox → signed batch.

VERIFIED TRACE
PostgreSQL workload

12 devices and 3,000 sessions validated isolation, replay idempotency and bounded query fields.

VERIFIED TRACE
Real CLI read

Codex CLI 0.144.2 produced 35 allow-listed session observations without content fields.

VERIFIED TRACE
Offline recovery

Events remain on disk after an unreachable gateway and clear only after a valid acknowledgement.

VERIFIED TRACE

06 / Build record

RustTypeScriptPostgreSQLSSEEd25519Kotlin
M1

Adapters, normalized state and the local SQLite outbox.

M2–M3

Signed device sync, PostgreSQL gateway, Web/PWA and native Android clients.

M4

Security, offline recovery, authentication and multi-device validation baseline.