Skip to content

Develop#61

Merged
vtemian merged 9 commits intomainfrom
develop
Feb 17, 2026
Merged

Develop#61
vtemian merged 9 commits intomainfrom
develop

Conversation

@vtemian
Copy link
Copy Markdown
Collaborator

@vtemian vtemian commented Feb 17, 2026

Summary

Brief description of changes.

Changes

  • Change 1
  • Change 2

Claudebin Session

🔗 Session Link

Testing

How did you test this?

Checklist

  • bun check passes
  • bun type-check passes
  • Tested locally
  • Claudebin session link attached

vtemian and others added 9 commits February 17, 2026 15:05
… XSS

Adds whitelist-based URL sanitizer that only allows http:, https:,
mailto:, relative, and fragment URLs. Blocks javascript:, data:,
vbscript: and other dangerous protocols.

Closes #43

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add rehype-sanitize to the markdown rendering pipeline to prevent HTML
injection attacks (script tags, forms, style-based content spoofing)
in thread conversations. Uses GitHub-style sanitization schema.

Closes #44

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Local commands (/clear, /help, /compact) use <local-command-stdout> tags
instead of <instructions>/<output>. The parser now detects these and emits
a LocalCommandBlock with its own component, icon, and i18n label.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: XSS injection in thread pages via URL sanitization (#43)
Combines rehype-sanitize (HTML sanitization) from this branch with
urlTransform (URL sanitization) from develop for defense in depth.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tion

fix: sanitize markdown HTML to prevent injection in threads
Cache Supabase queries using unstable_cache (Next.js Data Cache) with
on-demand revalidation via tags. No rendering model changes — pages
stay dynamic, no Suspense boundaries needed.

Cache layer:
- getCachedThread: cached per thread ID, tag "thread-{id}"
- getCachedMessages: cached per session, no tags (immutable data)
- getCachedFeaturedThreads: cached with tag "featured-threads"

Revalidation:
- like() → revalidateTag("thread-{id}")
- toggleVisibility() → revalidateTag("thread-{id}")
- deleteThread() → revalidateTag("thread-{id}")

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add data caching for threads, messages, and featured threads
fix: render local CLI commands as distinct block type
@vtemian vtemian merged commit d86f6b9 into main Feb 17, 2026
1 of 2 checks passed
vtemian added a commit that referenced this pull request Feb 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant