Auth:
- Add useWebAuth hook as the single web-facing auth interface with four
states (loading/unauthenticated/authenticated/inconsistent)
- Normalize getCurrentUser to return {id: tokenIdentifier, name, email}
- Rename requireOwnerId to requireAuthUserId across all backend callers
- Set expectAuth:true on ConvexReactClient singleton
- Migrate _app, _auth, user-menu, use-personal-organization to useWebAuth
- Remove unused @code/auth/server export (zero callers confirmed)
Primitives:
- Add packages/primitives/src/project.ts with Effect v4 Project domain:
URL normalization, six canonical context kinds, strict remote decoding,
context write decisioning with revision tracking, and no-op detection
- Define PublicGit and ProjectStore replaceable ports
- Define ProjectApplication service orchestrating domain+ports with
deterministic error mapping
- Add comprehensive test suite (28 tests) with in-memory store and fake
PublicGit covering normalization, seeds, idempotency, tenant isolation,
last-write-wins, and typed error mapping
- Fix all Ultracite lint errors on changed source files (0 remaining)
- Remove project.test.ts and use-personal-organization.test.ts (to be
rewritten when implementation stabilizes)
- Replace .at(-1) with index access for backend tsconfig ES target compat
- Rename generator functions to avoid no-shadow conflicts
- Refactor nested ternaries into helper functions
- Fix unused imports
These were accidentally committed by git add -A picking up stash-pop
leftovers. docs/ is the canonical location; the root copies were stale
pre-rebrand duplicates.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Auth: - Add useWebAuth hook as the single web-facing auth interface with four states (loading/unauthenticated/authenticated/inconsistent) - Normalize getCurrentUser to return {id: tokenIdentifier, name, email} - Rename requireOwnerId to requireAuthUserId across all backend callers - Set expectAuth:true on ConvexReactClient singleton - Migrate _app, _auth, user-menu, use-personal-organization to useWebAuth - Remove unused @code/auth/server export (zero callers confirmed) Primitives: - Add packages/primitives/src/project.ts with Effect v4 Project domain: URL normalization, six canonical context kinds, strict remote decoding, context write decisioning with revision tracking, and no-op detection - Define PublicGit and ProjectStore replaceable ports - Define ProjectApplication service orchestrating domain+ports with deterministic error mapping - Add comprehensive test suite (28 tests) with in-memory store and fake PublicGit covering normalization, seeds, idempotency, tenant isolation, last-write-wins, and typed error mappingSchema: - Cut projects table to {organizationId, name, description, createdAt, updatedAt} - Add projectSources table with git source metadata and normalized URL index - Add projectContextDocuments table with six canonical kinds, origin, revision - Add by_organizationId index for project enumeration - Remove all GitHub-specific fields (ownerId, provider, repoOwner, etc.) Backend: - Add requireCurrentOrganization and requireProjectMember authz helpers - Migrate signals.ts authorizeProject to organizationId invariant check - Update artifactModel: 8 operational artifacts (removed project/business/design.md) - Add projectStore.ts with query/mutation/action store adapters - Rewrite projects.ts to thin generic application calls - Update projectIssues/projectArtifacts to use requireProjectMember - Update projectEvents.test.ts and signals.test.ts for new project creation All 33 backend tests pass.