feat(loops): add research loop skeleton#97
Merged
Conversation
Define the four-stage research skeleton, semantic artifacts, manifest policy, durable idempotency, and OTel run/no-op events with focused coverage. Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Return research-specific outcomes, persist idempotent runs and no-ops, align trigger actions with the manifest, and correct the signed issue 43 fixture. Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Expose loop identity in stage context and fail closed for undeclared research actors while preserving development fixture routing. Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Add the completed issue 43 fixture, research registry entry, Storybook story, persisted projections, responsive checks, and light/dark accessibility coverage. Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Record the research actor and artifact boundaries, root orchestration contract, manifest policy, telemetry behavior, and operator expectations in the existing durable documentation. Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ncolesummers
marked this pull request as ready for review
July 22, 2026 04:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
research-loopwithplanning -> researching -> authoring -> donespike+agent-readywebhook deliveries to research-specific simulated, durable, and disabled no-op outcomesCloses #43.
Why
Loopworks had a development-specific durable path but no second loop shape proving that the orchestration, webhook, persistence, and portal contracts were genuinely loop-neutral. This slice establishes the research actor and artifact boundaries without pulling forward the Eve subagents, live fan-out, provider evals, or versioned research payload schemas owned by #44-#46.
Contract
planningresearch-plannerplanningresearchingresearcherresearchauthoringresearch-authorauthoringdoneloopworksdoneThe implementation persists four run steps and four artifact placeholders using the existing schema. Delivery idempotency is scoped to
research-loop; disabled research triggers persistresearch_loop_noopand never create development no-op events. Raw issue bodies and artifact content are excluded from telemetry.Review focus
src/lib/loops/research-run.ts, especially concurrent delivery behavior.researchingandauthoring; the fixture and database paths should render identically.Validation
bun run validatebun run buildbunx eve infoFinal validation: 27 Playwright tests passed; formatting, linting, agent docs, Markdown, TypeScript, Vitest, and Storybook gates passed. Storybook emitted its existing bundle-size advisory only.
Browser evidence
Research run
Disabled research routing
Scope boundaries
loopworks.research_*.v1payloadsCo-authored-by: OpenAI Codex GPT-5 noreply@openai.com