Skip to content

Extract todo system into standalone packages/todos/ package #69

Open

Description

@harrryyd

What to build

The todo system is well-separated conceptually but lives across three locations that each have conflict risk: packages/shared/src/todoStore.ts, packages/contracts/src/todos.ts, and apps/server/src/todoPersistence.ts. Move all todo logic into a standalone packages/todos/ package with its own subpath exports, contracts, and server layer. This isolates all fork-specific todo enhancements from upstream conflicts.

Move plan

  • packages/shared/src/todoStore.ts → packages/todos/src/store.ts
  • packages/contracts/src/todos.ts → packages/todos/src/schema.ts
  • apps/server/src/todoPersistence.ts → packages/todos/src/persistence.ts
  • Register RPC handlers via the extension registry from Create an RPC extension registry for WebSocket handlers #68
  • Web-side TodoPanel.tsx and useTodos.ts import from @t3tools/todos instead of @t3tools/shared/todoStore
  • Remove todo exports from packages/shared/package.json subpath exports

Acceptance criteria

  • packages/todos/ exists with package.json, tsconfig.json, and proper subpath exports
  • @t3tools/todos/store, @t3tools/todos/schema, @t3tools/todos/persistence import paths work
  • Todo panel in web app continues to function identically
  • vp check passes
  • vp test passes (including any todo-related tests)
  • packages/shared/package.json no longer references todo modules

Blocked by

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions