marklok/danishmike
Mike fork adapted for Danish legal practice, with pgvector-backed statute retrieval and backend-mediated profile access
marklok/danishmike is targeting the Danish legal market. The two main topics so far are a full RAG pipeline for Retsinformation statutes and EUR-Lex regulations (with inline citations in the chat UI), and a backend-API layer replacing direct Supabase reads/writes for user-profile data.
The retrieval work is the more technically substantial piece: a document_chunks pgvector table, section-reference detection for Danish citation syntax ("§ 42, stk. 3"), and a metadata-fallback merge on top of embedding search. The citation UI adds a slide-in panel and fixes a latent bug where page:null citations were silently dropped.
The profile refactor narrows what the browser can write - an explicit PATCH allowlist versus the prior RLS-only approach - but brings two issues worth checking: API keys flowing through request bodies without visible log scrubbing, and message_credits_used being client-writable.
What's in it
- Danish primary-source legal retrieval A retrieval pipeline focused on Danish law and EUR-Lex, so answers are anchored in the actual source material a Danish practitioner would cite.
- Inline citation pills Citations surface in the answer as clickable pills that open a slide-in panel - readers can verify the source without losing their place.
- Backend-mediated user profiles User profile reads and writes now flow through dedicated backend endpoints instead of the browser talking to the database directly.
Direction
searchi18n
Activity
Threads of work (detailed view)
marklok teaches Mike to cite Danish and EU law
This fork now recognises formal legal references and pulls the exact provision back as a clickable citation.
Danish statute + EUR-Lex RAG pipeline with clickable inline citations
marklok adds a full legal-retrieval stack over four commits: pgvector-backed ingestion for Retsinformation statutes and EUR-Lex regulations, section-reference-aware retrieval, and a slide-in citation panel in the chat UI. The fork is clearly targeting Danish legal practice.
marklok takes user data out of the browser's hands
Profile reads and writes now go through a locked-down backend instead of the browser talking straight to the database.
User profile reads/writes routed through backend API instead of Supabase direct
marklok replaces direct Supabase queries in `UserProfileContext.tsx` with `GET` and `PATCH /user/profile` backend endpoints. The PATCH handler adds an explicit column allowlist, narrowing what the browser can touch compared to the previous RLS-only approach.