Qdrant collections use regulation_id (not regulation_code), regulation_name_de,
guideline_name, download_url etc. Also search bp_compliance_datenschutz
collection where OWASP/ENISA docs live.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Go SDK RAG proxy returns 401 (Qdrant API key mismatch). Switch
AnchorFinder to use direct Qdrant vector search + embedding service,
same approach as the main pipeline. No dependency on Go SDK anymore.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add POST /v1/canonical/generate/backfill-anchors endpoint for batch
populating open_anchors on controls generated with skip_web_search=true
- Uses AnchorFinder Stage A (RAG search) to find OWASP/NIST/ENISA refs
- Background job with progress tracking (same pattern as other backfills)
- Promotes needs_review controls that gain anchors to draft state
- Target audience normalization (enterprise/authority/provider → JSON arrays)
already applied via SQL
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move pill from SVG (behind HTML) to an absolutely-positioned HTML div
with zIndex:10 so it always renders above the milestone cards.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Increase timeline marginTop from 14→68 so it clears the absolute-positioned
Tip and Fortschritt elements at top:36.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep only the top-level GradientText h2; drop the redundant h1 and kicker
inside each slide canvas.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ArchitectureSlide: full light mode via useIsLight() hook, all inline styles adapt
- USPSlide: full light mode via useIsLight() hook, all inline styles adapt
- MilestonesSlide: new component — horizontal timeline with past/HEUTE/future,
THEMES object (dark + light), clickable milestone nodes and stat cards with
detail modal, bilingual (de/en), scaling via ResizeObserver
- PitchDeck: register new 'milestones' slide case
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Port Claude Design's USP v2 exactly: Compliance ↔ Code bridge with a
central glowing orb, two pillar rows per column, animated SVG flow
connectors, and four Under-the-Hood feature cards with live tickers.
Detail modal (Framer Motion AnimatePresence) slides in on click for
all 9 interactive elements. Star field background. All text is our
actual content (RFQ Verification, Process Compliance, Bidirectional
Sync, Continuous, End-to-End Traceability, Compliance Optimizer,
EU Trust Stack, killer quote). Full DE/EN i18n.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Port Claude Design's V4 design exactly: three 3D perspective slabs
(Application / Gateway / Infrastructure) with animated data-flow connectors
between them, per-node live activity tickers, and a slide-up detail panel.
Replaces metro map with V4's floating slab aesthetic — dark purple gradient
background, CSS perspective rotateX transforms, JetBrains Mono terminal
tickers, amber LiteLLM hub with pulse indicator. All node data (titles,
tech stacks, services) preserved from previous design.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove flex-1 trailing divider that was pushing pills left
- Increase map height 420→480px to give clearance between app labels and gateway circle
- Update SVG viewBox to 0 0 1100 480 (consistent with CONNS coordinates)
- Update cy% for all nodes to match new 480px coordinate space (app 22.1%, gateway 50%, inference 80%)
- Update SEP1/SEP2 to 36%/65% for new height
- Update all SVG element y-coords: track lines, tick marks, junction dots, gateway stub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New architecture: CERTifAI (GenAI portal), COMPLAI (compliance), Scanner
(code security) — MCP bidirectional connection between COMPLAI and Scanner
- LiteLLM hub: token budget, PII guardrails, anon web search, no US providers
- Inference layer: Qwen3/DeepSeek (local LLM), bge-m3 embeddings, AI Tools
- Fix hover snapping: position wrapper (div) separate from scale (motion.button)
- Always-on data traffic packets on all connections
- Bidirectional MCP packets + MCP badge between COMPLAI and Scanner
- Live token ticker counter on active inference nodes
- BSI/EU sovereign badges on tier labels
- Spinning dashed ring on active LiteLLM hub
- Secondary infra chips in GenAI tier (PostgreSQL, Gitea, Orca, etc.)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge conflict resolution incorrectly added Anhang: Annahmen and
Anhang: Go-to-Market twice. Remove the duplicates, keep only the
renamed Anhang: Systemarchitektur entry in the correct position.
Also move @import rules above @tailwind directives (Turbopack CSS spec).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace grid/SVG-line layout with archipelago map: organic island blobs,
quadratic bezier sea routes, circular map-marker nodes
- Fix SVG distortion: all strokes use vectorEffect=non-scaling-stroke
- No more preserveAspectRatio=none diagonal-line warping
- LiteLLM hub gets spinning ring + ripple pulse on active
- Ocean background with per-tier radial glows, dot grid, zone labels
- Switch dev server to --turbopack for faster HMR
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
One-time endpoint to halve D&O, E&O, Produkthaftpflicht, Cyber, Rechtsschutz
for 2027 and delete Editorial Content row.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Group features into 7 thematic sections with colored headers
- Set isDiff=true (star) for all features where only ComplAI has it
- USP slide: remove "ohne es zu brechen" from quote
- Product slide: Privacy-Hardware card colored (emerald) like Cloud card
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove Use of Funds card from The Ask slide
- Remove Go-to-Market slide from deck
- Move Annahmen & Sensitivität after Finanzplan in slide order
- Update sidebar names in both DE and EN
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Kunden labels: 7px → 11px (matching MRR)
- EBIT negative: moved from inside bar (mt-1) to above bar (-mt-4)
- Liquidität negative: same fix (-mt-4 for all values)
- grossMargin + nrr added to FinanzplanSlide KPIs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Charts tab showed 0 for Gross Margin and NRR because these fields
were not computed in the FinanzplanSlide's own fpKPIs loading
(only existed in the useFpKPIs shared hook).
Added: grossMargin = (revenue - material) / revenue × 100
Added: nrr = revenue / prevYearRevenue × 100
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Removed USP section (GDPR, AI Act, CRA etc.) — these are Compliance, not AppSec
- Removed Compliance-only features from APPSEC_FEATURES array
- Reordered: Competitors → Effizienz-Kennzahlen → AppSec Features → Score Summary
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Finanzplan Charts tab: new Unit Economics chart showing ACV, Gross Margin,
NRR, EBIT Margin as mini bar charts per year (2026-2030).
BusinessModelSlide: sub-text under Unit Economics increased from 10px → xs (12px).
DB: Removed "Container in Produktion" metric from pitch_metrics + all versions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
USP Slide:
- 4 MOAT cards (was 3): added "Compliance Optimizer"
"Not just allowed/forbidden but the maximum permissible configuration
of every AI use case. Deterministic constraint optimization."
- Killer quote: "Everyone can say what is forbidden. Almost no one can
say how far you can go without breaking it. That is our product."
- Grid: 3 cols → 2x2 for better readability
Executive Summary:
- Competitors: removed Invest column, larger font (9px → 10px)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bug: "SUMME Betriebliche Aufwendungen" excluded Personalkosten and
Abschreibungen because they have is_sum_row=true. Result: both sum
rows showed identical values.
Fix: explicitly include Personalkosten and Abschreibungen rows in
the SUMME Betriebliche calculation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Finanzplan is now read-only for investors:
- Removed "Berechnen" / "Compute" button
- Removed cell double-click editing
- Removed blue edit indicator dots
- All sums computed live in frontend (no manual recompute needed)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
getValues() now reads values_invest for investment rows.
Previously only read values/values_total/values_brutto, missing the
invest-specific field name.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Year navigation: "Alle Jahre" shows 5 annual columns, individual years show 12 months
- Default starts at single year view
- Annual view: flow rows show yearly sum, balance rows show Dec value
- Removed [section] labels from row display
- Footer sum only shown in monthly view (not annual)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extended live-compute to ALL tabs:
- Liquidität: "Summe ERTRÄGE" = sum of einzahlung rows,
"Summe AUSZAHLUNGEN" = sum of auszahlung rows
- Kunden: GESAMT rows = sum of tier detail rows
- Umsatz: GESAMTUMSATZ = sum of all revenue rows
- Materialaufwand: SUMME = sum of cost rows
ÜBERSCHUSS rows kept from DB (complex multi-step formula).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>