Commit Graph

76 Commits

Author SHA1 Message Date
Roberto
27dbfdfa8d Update project state 2026-04-29 09:31:37 +02:00
Roberto
6a352075ec last state 2026-04-27 09:15:31 +02:00
Roberto
d80d4d6b9e update skills 2026-04-27 09:08:36 +02:00
Roberto
b2989e53eb Slide for adiuvAI 2026-04-19 14:49:36 +02:00
Roberto Musso
0ac2ce924d brief agent 2026-04-18 22:20:03 +02:00
Roberto Musso
3538050e75 memory 2026-04-17 22:48:19 +02:00
Roberto Musso
2ee3bb37db update skill config 2026-04-15 11:26:46 +02:00
Roberto Musso
25a5a6672e chore: update subproject commits for waitlist and website 2026-04-12 10:20:31 +02:00
Roberto Musso
8ce3ade8ce feat(onboarding): implement first-run user onboarding wizard for profile setup
- Added a new onboarding wizard that runs on the first app launch post-login.
- Collects user personalization data (job role, industry, primary use case, tone preference, language) and stores it in encrypted core memory.
- Auto-detects and saves formatting preferences (timezone, time format, date format) in local electron-store.
- Normalizes user free-text inputs via a backend LLM call before persisting.
- Introduced new backend routes for memory updates and normalization.
- Updated frontend components to support the onboarding flow with a chat-bubble aesthetic.
- Added settings section for profile editing and re-running the onboarding process.
- Ensured that the onboarding process is skippable and editable in the settings.
- Implemented verification steps to ensure proper functionality and data handling.

chore: update submodules for waitlist and website
2026-04-12 00:36:11 +02:00
Roberto Musso
54eb863c52 feat: Update local agent documentation to reflect changes in user_id and session_id handling; add marketing strategy document; update skills-lock.json with new Remotion best practices; update website subproject commit. 2026-04-11 02:15:59 +02:00
Roberto Musso
bc2c76d2bb docs: update CLAUDE.md with Google OAuth architecture and gotchas
Document non-obvious details from Steps 1-5 implementation:
- adiuvAI: deep-link protocol workaround, requestSingleInstanceLock,
  backup-key.ts device-bound key, loginWithOAuth fetch() vs get()
- api: _pending_states in-memory limitation, nullable password_hash,
  OAUTH_REDIRECT_URI pointing to API not website, 409 unverified-email
  guard, OAuth testing patterns with AsyncMock + monkeypatch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 18:39:20 +02:00
Roberto Musso
92648472d7 fix: handle unverified OAuth email conflict (api submodule)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 13:49:36 +02:00
Roberto Musso
2958961e75 feat: complete Step 5 Google OAuth — backup key + tests
- adiuvAI: add backup-key.ts (device-specific AES key via safeStorage),
  remove _cachedPassword from AuthManager
- api: add TestOAuth (6 tests) covering authorize, callback flows
- docs: mark Step 5 complete with lessons learned

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 13:42:29 +02:00
Roberto Musso
d068edc77e feat: Google OAuth Steps 2-4 — backend web-callback, Electron deep link, login UI, avatar
Backend (api @ feature/batch-agent-v2):
- GET /auth/oauth/{provider}/web-callback: bounces Google redirect to adiuvai://
- OAUTH_REDIRECT_URI default: http://localhost:8000/api/v1/.../web-callback

Electron (adiuvAI @ develop):
- adiuvai:// protocol registered in forge.config.ts and via setAsDefaultProtocolClient
- Single-instance lock + second-instance/open-url deep-link handlers
- AuthManager.loginWithOAuth() + handleOAuthCallback()
- auth.loginWithOAuth tRPC mutation
- LoginForm: Google button, divider, pending state
- AppShell + AccountSection: avatar photo with initials fallback

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 13:04:14 +02:00
Roberto Musso
37d7e65b35 feat: implement Step 2 Google OAuth backend — provider abstraction, PKCE routes, user linking
Adds api/app/auth/oauth_providers.py with GoogleOAuthProvider (httpx-based,
no authlib needed) and generate_pkce_pair(). New routes:
GET /auth/oauth/{provider}/authorize and POST /auth/oauth/{provider}/callback
with state/PKCE validation and three-way user resolution (existing OAuth link,
email auto-link, new social-only user). Updates settings.py with
GOOGLE_AUTH_CLIENT_ID/SECRET and OAUTH_REDIRECT_URI.

Also includes Step 1 backend changes (already marked complete in plan):
oauth_accounts table migration, nullable password_hash, avatar_url on User.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:21:14 +02:00
Roberto
89bc761609 Merge branch 'main' of https://git.muticolturano.com/adiuvAI/workspace 2026-04-10 08:47:36 +02:00
Roberto Musso
0bbcd3a7bc Add shadcn customization, evaluation, and rules documentation
- Create customization.md for theming and CSS variable usage.
- Add evals.json for testing shadcn/ui component prompts and expectations.
- Introduce mcp.md for MCP server setup and configuration.
- Document API differences between base and radix in base-vs-radix.md.
- Establish component composition rules in composition.md.
- Define forms and input handling guidelines in forms.md.
- Set icon usage standards in icons.md.
- Outline styling and customization best practices in styling.md.
- Update skills-lock.json to include shadcn source information.
2026-04-10 08:46:10 +02:00
Roberto
33fcd884e3 add implementation plan for Google OAuth login + avatar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 08:44:23 +02:00
Roberto
2969517134 add doc report llm to use 2026-04-09 23:07:17 +02:00
Roberto Musso
47585c2825 update submodule 2026-04-09 00:41:47 +02:00
Roberto Musso
54aed2fdbd update submodules 2026-04-08 23:53:12 +02:00
Roberto Musso
e08fa429d1 Update app name 2026-04-08 23:27:57 +02:00
Roberto Musso
e04b87f423 bash command to start app 2026-04-08 23:24:55 +02:00
Roberto Musso
a4a07df7fa update CLAUDE.md and clean up MCP config
- Fix directory names (adiuva/ → adiuvAI/, adiuva-api/ → api/)
- Document git submodule structure and clone instructions
- Correct Electron architecture (local-first LangGraph, not backend-dependent)
- Add non-obvious gotchas for both projects
- Mark microservices migration as planned but not yet started
- Remove duplicate langfuse-docs MCP definition from settings.json
- Simplify settings.local.json (enableAllProjectMcpServers replaces explicit list)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 23:22:02 +02:00
Roberto Musso
8ee5b47580 create submodule 2026-04-08 23:02:12 +02:00
Roberto Musso
1f1ce7d40e first commit 2026-04-08 22:55:08 +02:00