feat: git SHA version badge in admin, fix finanzplan caching, drop gitea remote
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m4s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 28s
CI / test-python-voice (push) Successful in 28s
CI / test-bqas (push) Successful in 26s

- AdminShell: shows NEXT_PUBLIC_GIT_SHA in sidebar footer
- Dockerfile + build-pitch-deck.yml: pass --build-arg GIT_SHA at build time
- FinanzplanSlide: fetch with cache:no-store to always show current DB values
- finanzplan routes: Cache-Control: no-store to prevent CDN/proxy staling
- CLAUDE.md: remove dead gitea remote (only origin exists)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-04-17 10:47:51 +02:00
parent b3643ddee9
commit 27ef21a4f0
8 changed files with 25 additions and 8 deletions

View File

@@ -92,6 +92,11 @@ export default function AdminShell({ admin, children }: AdminShellProps) {
<div className="px-3 py-2 mb-2">
<div className="text-sm font-medium text-white/90 truncate">{admin.name}</div>
<div className="text-xs text-white/40 truncate">{admin.email}</div>
<div className="mt-1.5 flex items-center gap-1.5">
<span className="text-[9px] font-mono bg-white/[0.06] text-white/30 px-1.5 py-0.5 rounded">
{process.env.NEXT_PUBLIC_GIT_SHA ?? 'dev'}
</span>
</div>
</div>
<button
onClick={logout}

View File

@@ -84,7 +84,7 @@ export default function FinanzplanSlide({ lang, investorId, preferredScenarioId
// Load sheet list
useEffect(() => {
fetch('/api/finanzplan')
fetch('/api/finanzplan', { cache: 'no-store' })
.then(r => r.json())
.then(data => setSheets(data.sheets || []))
.catch(() => {})
@@ -99,7 +99,7 @@ export default function FinanzplanSlide({ lang, investorId, preferredScenarioId
}
setLoading(true)
try {
const r = await fetch(`/api/finanzplan/${name}${fpScenarioParam}`)
const r = await fetch(`/api/finanzplan/${name}${fpScenarioParam}`, { cache: 'no-store' })
const data = await r.json()
setRows(data.rows || [])
} catch { /* ignore */ }