Skip to content

feat: Register-First module with standalone mode - #5

Open
Egonso wants to merge 3 commits into
mainfrom
claude/silly-bhaskara
Open

feat: Register-First module with standalone mode#5
Egonso wants to merge 3 commits into
mainfrom
claude/silly-bhaskara

Conversation

@Egonso

@Egonso Egonso commented Feb 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds the complete Register-First library (src/lib/register-first/) implementing EUKI Use-Case Pass Standard v1.0/v1.1
  • Introduces standalone Register Service with user-scoped registers (users/{userId}/registers/{registerId}/useCases) independent from Dashboard projects
  • Adds secure Public Index (publicUseCases/{hash}) for verify lookups with minimal data exposure
  • Shared business logic (use-case-builder.ts) ensures consistency between legacy Dashboard service and new standalone service
  • Feature flag standaloneMode for controlled rollout
  • UI components: CaptureForm, RegisterBoard, StatusBadge, UseCasePassCard, HybridEntryLauncher
  • Verify pass route for public use-case verification with legacy fallback

Architecture

  • Private storage: users/{userId}/registers/{registerId}/useCases/{useCaseId} (owner read/write)
  • Public index: publicUseCases/{publicHashId} (public read, owner write) — only minimal fields exposed
  • Dual-write: setPublicVisibility(true) writes both private card and public index
  • No auto-create: Registers are only created by explicit user action (Manual-Only Governance)
  • Legacy coexistence: Dashboard projects/{projectId}/registerUseCases/ path untouched

Remaining work (follow-up PRs)

  • Phase 3: Firestore security rules + indexes
  • Phase 4: Standalone routes (/capture, /my-register), component parametrization, entry links
  • Smoke tests for standalone service

Test plan

  • Verify tsc --noEmit passes
  • Run existing smoke tests: node --experimental-strip-types src/lib/register-first/__tests__/run-all-smoke.ts
  • Verify feature flag defaults to false (no behavior change for existing users)
  • Manual test: Dashboard capture flow unchanged

🤖 Generated with Claude Code

Implements the complete Register-First system including:
- EUKI Use-Case Pass Standard v1.0/v1.1 with Zod schemas, status flow,
  ID generation, proof packs, and verify links
- Standalone Register Service with user-scoped registers
  (users/{userId}/registers/{registerId}/useCases)
- Public Index for secure verify lookup (publicUseCases/{hash})
  with minimal data exposure
- Shared business logic (use-case-builder.ts) used by both
  legacy Dashboard service and standalone Register service
- Register settings with Firestore persistence + sessionStorage cache
- Feature flags with standaloneMode support
- UI components: CaptureForm, RegisterBoard, StatusBadge,
  UseCasePassCard, HybridEntryLauncher
- Verify pass route for public use-case verification
- Smoke tests for service, v1.1 schema, and tool registry

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@netlify

netlify Bot commented Feb 13, 2026

Copy link
Copy Markdown

Deploy Preview for studio-egonso failed.

Name Link
🔨 Latest commit 33dedba
🔍 Latest deploy log https://app.netlify.com/projects/studio-egonso/deploys/69907c19128eb30008568451

ZoltanPrometheus and others added 2 commits February 13, 2026 18:28
- Add Firestore security rules for registers and publicUseCases
- Create standalone routes: /capture and /my-register with onboarding
- Parametrize CaptureForm (onSubmit prop) and RegisterBoard (mode prop)
- Update verify pass page to render PublicUseCaseIndexEntry directly
- Add standalone href builders to entry-links
- Update hybrid-entry-launcher for standalone mode routing
- Fix duplicate exports in barrel index.ts
- Fix missing standaloneMode in service-v11 smoke test
- Fix active-project-client import in hybrid-entry-launcher
- Add comprehensive register-standalone smoke test (15 assertions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants