Skip to content

Tracer Bullet: Project-Scoped Chat with TanStack AI + Durable Streams #53

Description

@imharrisonking

Goal

Validate a project-scoped chat route using TanStack AI with SolidType-style durable stream output, rendered live in the client.

Minimal Scope

  • Implement /app/projects/:projectId/chat route.
  • Add pathless _chat.tsx layout containing the chat input/composer.
  • Add chat.tsx child route rendering streamed assistant output.
  • Add POST /api/chat/run endpoint using TanStack AI for model streaming.
  • Write stream chunks to durable stream using the SolidType event schema.
  • Subscribe client UI to durable stream and render incoming chunks.
  • Happy path only; defer edge/error handling and polish.

Acceptance Criteria

  • User can send a message from /app/projects/:projectId/chat and receive a streamed assistant response.
  • Durable stream output is visible in the client and drives rendered chat updates.
  • Chat input lives in _chat.tsx pathless layout, not per-child route.
  • Document implementation learnings and constraints for follow-on phases.

Related Feature

Unlocks: persistence, multi-session UX, workspace-wide chat index.

Additional Context

  • Use SolidType durable stream event conventions (content, tool_call, tool_result, done, error).
  • Workspace context will come from user.workspaceId in follow-up phases.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tracer-bulletEnd-to-end slice to validate approach

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions