LoopEngineBETA

Roadmap

An honest punch list, not a marketing one — what's actually been verified live, what's next, and what's a known, deliberately open gap.

Verified live

  • Durable approval — approve, deny, approve-with-edit
  • Cascade-skip (two pending items in one batch, one denied → sibling auto-skipped)
  • Durable question (system_ask_user) end to end
  • DeepSeek reasoning_content round-tripped through multi-turn tool-calling resumes

Next up

  • Wrong-kind guard, live

    Hitting /pending-approvals/:id/resolve for a question's pendingId (or vice versa) — the 400 path exists in code, never actually exercised.

  • editedArgs validation-error path, live

    A malformed edit should leave the checkpoint untouched and retryable — only the valid-edit happy path has been run for real.

  • Redis-backed checkpoint/session store, live

    Everything verified so far used the file-backed store. RedisCheckpointStore/RedisSessionStore are unit-tested in isolation, not exercised end to end (webhook → Redis checkpoint → resolve → resume).

Known gaps, deliberately open

  • Slack / Lark notifier channels

    SlackNotifier / LarkNotifier have never hit a real Slack or Lark app — reasoned through against documented API shapes only.

  • Email magic-link channel

    Code reviewed and explained, never actually sent or clicked live.

  • Anthropic extended-thinking support

    Deliberately deferred — no ANTHROPIC_API_KEY available to test against. Anthropic's thinking block needs a signature field preserved byte-for-byte, a stricter contract than DeepSeek's plain reasoning_content string.

  • Magic-link revocation

    Email approval/answer links are time-bound (signed, expiring token) but not actively revocable — if a decision is made through another channel first, the other link still exists until it expires.

  • Per-agent webhook discovery for a background dispatcher

    How a cron/queue worker calling runAgent() directly (no adapters/http.ts in the picture) discovers which webhook target to use, if it wants one different from the live HTTP path's own default. Treated as ordinary application wiring, not a protocol concept — untested because no real dispatcher has been built yet.