Skip to content

feat(web): add durable Projects workspace - #231

Draft
seonghobae wants to merge 12 commits into
feat/web-goals-workspace-v1from
feat/web-projects-workspace-v2
Draft

feat(web): add durable Projects workspace#231
seonghobae wants to merge 12 commits into
feat/web-goals-workspace-v1from
feat/web-projects-workspace-v2

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Advances #209 as a dependency-ordered child of #229. This slice adds the first-party /projects workspace on top of the already-stacked authenticated Goal and Project BFF contracts; the browser never supplies workspace authority and accepts only validated durable Goal/Project evidence.

The pre-existing feat/web-projects-workspace-v1 branch had no PR and diverged from #229 before six Goals review fixes landed. Its two valid RED invariants (goal-scoped workspace state and rejecting late cross-goal Project responses) were revalidated and carried forward onto this non-force successor instead of rewriting that branch. Successor RED begins at 00378a1f2ec2dd09328baae7b2cf0604141c52a2; 92515c163de0eae7fd6e428b1220031df41cb5d6 wires it into the web suite. Current implementation head is 8f5e1c0c1afe80210279cf6f830fff5e9b8c16d2.

The workspace requires explicit Goal selection before Project queries or mutation, clears stale Project evidence on scope change, ignores late GET/create results from prior Goal scope, accepts creation only after explicit form submission and returned server evidence, validates UUIDv4/canonical UTC/title boundaries, preserves existing evidence on offline/auth/unavailable transitions, clamps Unicode titles by code point, and supplies loading/empty/auth/error plus responsive keyboard-focus/target-size states. Playwright coverage includes stale request ordering, durable-create acceptance, non-BMP title limits, authentication failure, and 390px overflow/target-size evidence.

A bounded local TypeScript strict check and targeted reducer execution passed for the new state module. This stacked PR does not claim repository-wide CI/security/coverage GREEN: repository workflows currently trigger only for PRs targeting main/develop, so it must reacquire exact-head hosted gates after its prerequisites integrate and the stack is descendant-restacked. It also does not claim the complete Goal → Project → Task → Habit → Review journey, Figma/Storybook completion, eight-locale/DB-backed translation parity, release readiness, or #209 closure.

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant