rowboat/apps/x/apps/renderer
Ramnique Singh 251a462686 feat(app): wire the new runtime into main + renderer
shared/ipc.ts: add sessions:* channels (create / get / list / sendMessage /
getHistory / listTurns / getTurn / respondToPermission / setToolResult /
resumeTurn / stopTurn / delete) and the sessions:events feed; remove the runs:*
channels.

main:
- register the sessions handlers and forward the turn event bus to renderer
  windows; getAgentRuntime() at startup
- stop in-flight headless runs via stopTurn (live-note / bg-task)
- drop the runs watcher, runs:* handlers, and the dev test-agent script

renderer:
- single global session-feed consumer; useSessionChat(sessionId) hook; pure
  turn -> chat-state mappers (agent-turn-view, session-chat-state); shared
  ChatConversation component
- chat (main view + sidebar) renders from the session feed; per-turn model /
  permission mode; bg-task and live-note detail views load transcripts via
  sessions:getTurn; chat delete via sessions:delete
- remove the dormant run-event path (handleRunEvent + runs:events) and its
  orphaned state
- vitest + jsdom test setup

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 09:44:15 +05:30
..
public refactor onboarding: remove welcome screen, streamline model setup, tighten spacing 2026-02-05 23:03:47 +05:30
src feat(app): wire the new runtime into main + renderer 2026-06-15 09:44:15 +05:30
.gitignore bootstrap new electron app 2026-01-16 12:05:33 +05:30
components.json UI improvements 2026-01-16 12:05:33 +05:30
DESIGN_LANGUAGE.md minor design changes (#564) 2026-05-18 22:49:18 +05:30
eslint.config.js bootstrap new electron app 2026-01-16 12:05:33 +05:30
index.html fix startup flash 2026-02-04 22:45:51 +05:30
package.json feat(app): wire the new runtime into main + renderer 2026-06-15 09:44:15 +05:30
README.md bootstrap new electron app 2026-01-16 12:05:33 +05:30
tsconfig.app.json feat(app): wire the new runtime into main + renderer 2026-06-15 09:44:15 +05:30
tsconfig.json UI improvements 2026-01-16 12:05:33 +05:30
tsconfig.node.json bootstrap new electron app 2026-01-16 12:05:33 +05:30
vite.config.ts feat(app): wire the new runtime into main + renderer 2026-06-15 09:44:15 +05:30

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])