feat: Firebase AI chat, filing status from profile, jobs UI, CI/CD fixes#44
Merged
Conversation
- Add geminiModel export to firebase.ts using getAI + GoogleAIBackend +
gemini-2.5-flash; add FIREBASE_APPCHECK_DEBUG_TOKEN flag for dev so
App Check works without reCAPTCHA in local/headless environments
- Rewrite Chat.tsx: startChat() session with tax-focused system prompt,
sendMessageStream() for token-by-token streaming, Enter-to-send,
loading spinner, multi-turn history, signed-out guard
- Fix systemInstruction format: wrap as { parts: [{ text }] } — the
Firebase AI SDK does not auto-wrap plain strings for this field
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gle'
Fetches filingStatus from userProfiles/{uid} on Dashboard mount and passes
it to runAccountant. Shows a yellow warning banner with a profile link when
the field is missing, falling back to 'single'.
Closes #41
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- firebase-deploy.yml: add path filters, VITE_RECAPTCHA_ENTERPRISE_SITE_KEY, google-github-actions/auth for SA auth, multi-path npm caching, npx firebase-tools (no global install), remove --debug noise - frontend.yml: drop deploy job (race condition with firebase-deploy.yml), bump all actions to v4, CI-only on PRs and feat/fix branches - backend.yml: drop broken deploy job (was targeting wrong functions dir), fix GOOGLE_APPLICATION_CREDENTIALS misuse, bump actions to v4/v5, CI-only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deployment target is Firebase Hosting; Netlify is no longer used. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaced hardcoded sampleJobs array with real Firestore data only. Added colored status badge pills (pending/processing/completed/failed) alongside icons. Fixed broken empty-state check and dead Reviewing status that had no icon. Also updated the details modal to use badges. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
ReCaptchaEnterpriseProviderwith debug token support for dev; added server-side assessment utility infunctions/src/recaptcha.tsgemini-2.5-flash), streaming responses, Enter-to-send, sign-in guardDashboard.tsxnow fetchesfilingStatusfromuserProfiles/{uid}on mount and passes it torunAccountant; shows a yellow warning banner with a profile link when the field is missing (closes Wire filing status from user profile instead of hardcoded 'single' #41)sampleJobsarray, replaced plain-text status with colored badge pills (gray/blue/green/red), fixed broken empty-state and the unhandledReviewingstatusfirebase-deploy.yml); removed race condition betweenfrontend.ymlandfirebase-deploy.yml; fixed brokenbackend.ymldeploy job; bumped all actions to v4/v5; addedVITE_RECAPTCHA_ENTERPRISE_SITE_KEYto build envfrontend/netlify.tomlTest plan
maintriggers onlyfirebase-deploy.yml; push tofeat/**triggers onlyfrontend.ymlCIVITE_FIREBASE_API_KEY,VITE_RECAPTCHA_ENTERPRISE_SITE_KEY,FIREBASE_SERVICE_ACCOUNT,GOOGLE_GENAI_API_KEY🤖 Generated with Claude Code