Commit Graph

12 Commits

Author SHA1 Message Date
Carlos Florêncio 5e5e115105 fix(web): prevent cross-task session leak in dockview layout switch (#1265) 2026-06-04 09:31:50 +01:00
Carlos Florêncio 782fdb56ed feat(web): polish chat message rendering (#935) 2026-05-18 22:04:31 +01:00
Carlos Florêncio 32579db525 refactor(web): unify file-tree components on a useTree headless hook (#919) 2026-05-17 21:26:13 +01:00
Carlos Florêncio 0b2085688b feat(office): autonomous agent management layer (#914) 2026-05-16 20:07:57 +01:00
José Almeida ebdce2f956 fix: prevent inline code from rendering diagrams (#773)
* fix: prevent inline code from rendering diagrams

* fix: address markdown renderer review feedback

* fix: remove redundant markdown block detection
2026-05-02 18:53:59 +01:00
José Almeida 692fdddcc9 fix(web): make mermaid sanitizer quote-aware and detect parens in bracket labels (#763)
* fix(web): make mermaid sanitizer quote-aware and detect parens in bracket labels

Two diagrams failed to render because sanitizeMermaidCode injected nested
quotes into already-quoted labels and missed parens-as-stadium-opener inside
bracket labels. Skip ranges already inside `"..."` (recomputed between
passes) and add `(`/`)` to the bracket-pass trigger set.

* refactor(web): drop dead text.startsWith('"') guards in mermaid sanitizer

The regex character classes [^\]"], [^|"], [^)"] already exclude `"`,
so the guards were unreachable.

* fix(web): stop unterminated quote bleeding across lines in mermaid sanitizer

findQuotedRanges now stops scanning at newline; an unterminated `"` is
discarded rather than paired with a `"` on a later line where it would
silently suppress sanitization of unrelated content. Add tests for the
cross-line guard and for a bracket-with-parens adjacent to a real
stadium node on the same line.
2026-05-01 22:38:06 +01:00
José Almeida a2d98f5d3e fix(web): replace mermaid bomb-icon error flood with toast notifications (#594)
* fix(web): replace mermaid bomb-icon error flood with toast notifications

mermaid.render() called without a container leaves orphaned error
elements (with bomb icons) in document.body on parse failures. Clean up
these orphans after every render and show an error toast instead.

* fix(web): address PR review — prevent toast flooding, include error detail, add hook tests

- Add latestRenderId guard in TipTap MermaidNodeView to skip stale
  renders, preventing toast spam on every keystroke
- Include mermaid error message in toast description via CustomEvent detail
- Add useMermaidErrorToast hook tests (event listener + cleanup)

* style(web): format mermaid-error-toast test with prettier

* fix(web): include error message in MermaidBlock toast description
2026-04-15 21:47:42 +01:00
João Salavisa 0d03825a49 fix(web): sanitize mermaid code to handle special characters (#444) 2026-03-23 08:36:31 +00:00
Carlos Florêncio aba9271fd5 fix: async workspace preparation and worktree branch fallback (#433) 2026-03-14 12:00:35 +00:00
Carlos Florêncio c1140a7ab5 fix: consolidate markdown styles into shared .markdown-body class (#332)
feat: improve markdown styles
2026-02-28 17:41:45 +00:00
Carlos Florêncio b3f1eaa037 feat: mermaid support (#293) 2026-02-26 13:24:40 +00:00
Carlos Florêncio 2782d826ec feat: improve PR review watcher + PR info panel (#281) 2026-02-26 08:48:11 +00:00