Skip to content

mnem/hugin-beta

Back Beta -> main: Kladdeboka, Datakilder (RAG), samtalehistorikk/kryptering, Feature Spotlight (#226)

Commit details

Beta -> main: Kladdeboka, Datakilder (RAG), samtalehistorikk/kryptering, Feature Spotlight (#226)

Description

* Create publish-beta.yml * m2m token (#206) * Lint * reintroduce Datasources in the menu * Create new toggle * reset info when load store * view state * unrestricted access * weights are in decimal steps * treshholds vector * lint * thresholds * visulas * more treshholds * lint * redesign datastore search * lint * nullable thresholds * multisearch and unrestricted access fix * normalize chunks * small ui adjustments * rerank stylng and infobox * Update publish-beta.yml * upload filetypes * biome * Conversation history (#208) * Add support for GPT-5.6 Terra message file types in app config (#207) * Add Kudu SCM connectivity check to publish workflow * First check * Seems to work * inkognitomode localstorage * Tittel * No need to retitle a conversation with a title * update covnersation title response * correct sort fields --------- * lint * Conversation history (#210) * First check * Seems to work * inkognitomode localstorage * Tittel * No need to retitle a conversation with a title * update covnersation title response * correct sort fields * check * Add reusable FeatureSpotlight component for feature announcements Non-blocking callout with dynamic header/icon/text/subtext, a "don't show again" checkbox, and support for fixed or anchored positioning. Dismissal state is tracked in localStorage via a shared spotlight-util module instead of duplicating the ad-hoc pattern used elsewhere. * Samtale historikk - flytt samtale eller bytt agent popup * request title when loading another conversation * rerank feature flag * Add FeatureSpotlight component for announcing new features A reusable, self-dismissing callout (fixed placement or anchored to an element) with a "don't show again" checkbox, backdrop dimming, Markdown support for its body text, and a children snippet for embedding a real UI-element preview inline. Wires up a real "conversation history" splash on the home page, and removes the unused ad-hoc WelcomeSplash this generalizes. * upload timeout workaround * reload button * useOcr * lint * RewriteQuery * Revert "RewriteQuery" This reverts commit db8a8d68a423a3b796b38ab17dc1e8fb7f2c8f30. * rewrite query * bump timeout to 60s * audit * info popup feature * Oppdaert menyvalg for "vis alle assistenter" (#214) * gracefully fails, and filename check * check * Gate ragservice access to employees/admins and drop the mock adapter - canUseRagservice now covers EMPLOYEE and ADMIN (was admin-only); the /ragservice page and its API proxy follow that, while the sidebar menu link stays admin-only via a separate isAdmin check so the full management page isn't advertised to employees yet. - The assistant-config "Datakilder" data-source picker now shows for the same audience, as a teaser for the feature. - Remove MockRagServiceApi/IRagServiceApi and PUBLIC_MOCK_RAGSERVICE - the GUI now always talks to the real ragservice API. - Merge in remote's file-status polling/progress-bar work and RAG error-handling changes, reconciling the file-status badge to only translate the confirmed "done" status rather than guessed values. - Minor lint fix: CSS specificity ordering + hardcoded color literal in ragservice-shared.css. * Mention Inkognito in the history spotlight Adds a paragraph pointing at the Inkognito toggle, styled as the same non-interactive reference chip used for the "Samtaler" mention (no icon, since the real button has none). Bumps the spotlight id so users who already dismissed the old copy see the update. Also applies biome's safe autofix to FeatureSpotlight.svelte (import order + prop destructuring format) to get a clean lint pass. * Kladdeboka (#220) * Correct Canvas docs and bump to gpt-5.6-terra README claimed canvas.ts was a Zod schema; it's a plain TypeScript type, so fix the docs to match. Also point Canvas at the newer gpt-5.6-terra model instead of gpt-5.4. * Add Kladdeboka tool registry with tab-visibility rule - Create tools.ts with CanvasTool type, CANVAS_TOOLS constant, and shouldShowToolTabs visibility logic - Add comprehensive test suite verifying behavior for 0, 1, and 2+ tools - Tabs only show when more than one tool is registered * Add canvas-scoped PromptBar component mirroring ChatInput's pattern * Add Kladdeboka shell layout with conditional tool tab strip * Move Kladdeboka document editor to /canvas/document, update nav link * Fix README staleness and minor Canvas shell nits from final review - README: update Canvas route to /canvas/document and refresh the "Relevant files" table to reflect the layout/document restructuring - Canvas tab strip: use startsWith for active-state match, matching the same fix already applied to Menu.svelte's Kladdeboka link - PromptBar: drop the unreachable "" default on $bindable(), since value is a required string in Props * Polish Kladdeboka layout from manual QA feedback Show the tool tab strip even with a single tool, merge it into the same topbar row as the document actions (Rediger/Tekst/Word) instead of shell-owned rendering, cap the prompt bar's width to match the document paper, and drop the redundant "Kladdeboka" heading on the document page itself. * Redirect bare /canvas to /canvas/document Bookmarks and browser history pointing at the old flat route (Canvas was announced there before this restructuring) would otherwise hit a 404 instead of landing on the document tool. --------- * Add Mermaid diagram tool to Kladdeboka (#221) * Add extractTextOutput, stripping the reasoning-model output placeholder * Add parseMermaidRequest, mirroring parse-canvas-request's validation pattern * Add /api/canvas/mermaid endpoint * Add /canvas/mermaid page and register it as a second Kladdeboka tool Registers "mermaid" in CANVAS_TOOLS alongside "document", which makes the shell's tab strip visible for the first time (it only renders with more than one tool). The new page consumes POST /api/canvas/mermaid and renders the returned diagram client-side with the mermaid package. * Fix mermaid tool integration-review findings - Suppress mermaid's error-render DOM leak and skip re-rendering while editing raw code, so failed parses no longer leak orphan nodes into document.body - Guard the mermaid endpoint against empty/refused model output so a 200 response never silently wipes the user's diagram; add a test pinning down that refusals extract to an empty string - Handle image load failure in downloadImage so the blob URL is always revoked - Fix stale test name in tools.svelte.spec.ts (registry has two tools) - Revert the katex 0.16.45 -> 0.16.47 bump that rode along with installing mermaid, keeping the branch diff scoped to mermaid * Fix invalid syntax for newer Mermaid diagram types (venn, block, packet, architecture) The model correctly recognizes these -beta diagram types exist but hallucinates their syntax, since it has far less training exposure to them than to flowchart/sequence/etc. Reported bug: asking for a Venn diagram produced invented shorthand (`A["Kunder"]`, `A & B[...]`) that fails to parse - the real grammar requires explicit `set`/`union` keywords. Root-caused via mermaid's own installed grammar (SET/UNION tokens in the parse error) and the official syntax docs, then verified by re-running the exact failing prompt against the live endpoint and parsing the result with mermaid's real parser. Second iteration: the first fix got `set` right but the model still substituted "intersection" for the required "union" keyword on a 3-set overlap - not caught until testing the user's actual 3-set prompt shape. Strengthened the example to a 3-set case with pairwise and triple unions, and added an explicit "always union, never intersection" note, matching the exact prompt shape that failed. * Cap venn-beta diagrams at 3 sets, fall back to flowchart for 4+ 4-set Venn diagrams are unfixable, not a bug: a 4th circle cannot geometrically intersect the other three in every way needed, so any 4+ set venn-beta diagram renders with overlap labels stacked on top of each other regardless of how correctly it's written (reproduced with a real prompt - "Ansatte, Ledere, Utviklere, Konsulenter"). Instruct the model to merge down to 3 sets or switch to a diagram type that can actually show 4+ categories. Verified: the same prompt now produces a flowchart instead of a broken 4-circle venn. * Teach the model venn-beta's style syntax for coloring sets Confirmed: you were right, it didn't work - the model was silently ignoring color/style requests entirely (returning the diagram unchanged with 200 OK, no error) because the system prompt never mentioned that venn-beta supports a "style" keyword at all. Added the real syntax (style <ids> fill:#hex, stroke:#hex) with an explicit instruction not to ignore styling requests. Verified: the same "make the Kunder circle blue" prompt now produces correct style lines that parse cleanly. --------- * Switch diagram page to landscape and fix PNG export bugs (#222) Mermaid diagrams read better wide than tall, so the Kladdeboka Diagram tab now uses landscape A4 instead of the portrait layout shared with the Dokument tab. Also fixes "Last ned" (download as image): htmlLabels was tainting the export canvas via foreignObject, and the canvas was sized from the img element's fallback dimensions instead of the diagram's real viewBox, cropping/zooming the exported PNG. * encrypt (#223) * effectiveStoreChat * let users se datastores * Serialise imprted chat (#224) * check * check * button locked * Oppdatert readme + bump beta after main-update * isCreatingConversation * Update message-encryption.ts Encryption safeguard * Edit title * set datasources to only admins * Override transitive cookie dep to 0.7.1 to fix GHSA-pxg6-pf52-xh8x @sveltejs/kit pins cookie ^0.6.0 even on its latest 2.x release, so the out-of-bounds cookie name/path/domain fix isn't reachable via a normal bump. Force it via npm overrides until upstream catches up. ---------

Metadata

Author
Rune Lunden Teleruin@gmail.com
Committed
Commit

Contributors

  • Rune Lunden Teleruin@gmail.com Author
  • Matthias Veel Krauss matthias.krauss@gmail.com Co-author
  • Tom Jarle Christiansen fuzzbin@gmail.com Co-author
  • fuzzbin tom.jarle.christiansen@telemarkfylke.no Co-author
  • Claude Sonnet 5 noreply@anthropic.com Co-author