Skip to content

Let chronicle GIFs drop the watermark, the Discord link, or both - #41

Merged
Drefvelin merged 1 commit into
mainfrom
feat/chronicle-gif-branding
Sep 27, 2026
Merged

Drefvelin merged 1 commit into
mainfrom
feat/chronicle-gif-branding

Conversation

@Drefvelin

@Drefvelin Drefvelin commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The chronicle export panel now has separate Watermark and Discord link checkboxes, both on by default so existing exports stay branded.
  • Unchecking either one leaves the other in place. Unchecking both leaves a clean frame, and the date stamp still fits whatever corner mark remains.

Test plan

  • Open a built chronicle on the dev site and confirm Watermark, Discord link, and Stamp the date are checked.
  • Export with the watermark off and confirm the logo is gone while the Discord line remains.
  • Export with the Discord link off and confirm the logo remains without discord.gg/tfmc.
  • Export with both off and confirm neither mark is burned in.
  • Export with both off and the date still stamped, and confirm the date still appears.

Summary by CodeRabbit

  • New Features
    • Customize Chronicle GIF exports with separate options for the logo watermark, Discord link, and date stamp. The logo and Discord link are enabled by default, and the watermark adjusts to show only selected elements. Export options are unavailable while a GIF is being created.

The corner mark was always burned in. The export panel can now drop each piece on its own, and a date stamp still fits whatever remains.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ec4aac1f-b451-41ba-be36-4057a89e35ef

📥 Commits

Reviewing files that changed from the base of the PR and between 47be1f3 and 7002701.

📒 Files selected for processing (6)
  • frontend/app/components/chronicle/ChroniclePanels.test.tsx
  • frontend/app/components/chronicle/ChroniclePanels.tsx
  • frontend/app/components/chronicle/ChronicleStudio.tsx
  • frontend/app/components/chronicle/chronicleGifExport.ts
  • frontend/app/lib/map/chronicleGifFrame.test.ts
  • frontend/app/lib/map/chronicleGifFrame.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

GIF exports now support independent controls for the watermark logo, Discord link, and date stamp. The playback panel exposes the controls, and the renderer adjusts watermark layout and content to match the selected options.

Changes

GIF Watermark Options

Layer / File(s) Summary
Optional watermark layout
frontend/app/lib/map/chronicleGifFrame.ts, frontend/app/lib/map/chronicleGifFrame.test.ts
The layout accepts optional logo and link settings. It positions remaining components and the date, and tests cover component combinations and scrim bounds.
GIF watermark rendering
frontend/app/components/chronicle/chronicleGifExport.ts
GIF options control logo and Discord-line rendering. The exporter measures and draws enabled components, and loads the logo only when enabled.
Playback export controls
frontend/app/components/chronicle/ChroniclePanels.tsx, frontend/app/components/chronicle/ChronicleStudio.tsx, frontend/app/components/chronicle/ChroniclePanels.test.tsx
The playback panel exposes watermark and Discord-link checkboxes. ChronicleStudio passes their settings to GIF export. The controls are disabled during export, and the mount test checks their labels.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant ChroniclePlaybackPanel
  participant ChronicleStudio
  participant exportChronicleGif
  participant drawWatermark
  ChroniclePlaybackPanel->>ChronicleStudio: Update watermark and Discord-link settings
  ChronicleStudio->>exportChronicleGif: Pass watermark, Discord-link, and date-stamp options
  exportChronicleGif->>drawWatermark: Pass enabled parts and stamped day for each frame
Loading

Suggested reviewers: justinasla

Merge Risk: ⚪ Minimal · up to 70027

The independent GIF watermark and Discord-link controls appear ready to merge after normal checks.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 70027

Users can now export GIFs without either branding element. The reviewed export path does not show a new security boundary or privilege change, but the available information does not establish whether attribution is required for every use.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The identified change affects branding pixels in a browser-generated GIF; the reviewed flow does not show a new service call or elevated export authority.

Trust Boundaries and Controls

  • inferred — The frontend exposes both omission choices directly to the user. The reviewed code establishes no rule requiring attribution, so it cannot determine whether another policy should constrain those choices.

Hardening Proposals

  • proposed — If attribution is mandatory for any audience, establish that policy explicitly and enforce it at an appropriate trusted boundary rather than relying on default-checked client controls.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 6 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: allowing chronicle GIFs to omit the watermark, Discord link, or both.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

A rabbit checks the stamp at dawn,
Then tucks the Discord line away.
The logo joins, or skips the frame,
While scrims reshape to fit the day.
The GIF hops out, options in hand.

Comment @coderabbitai help to get the list of available commands.

@Drefvelin
Drefvelin merged commit 89b8ebc into main Sep 27, 2026
2 checks passed
@Drefvelin
Drefvelin deleted the feat/chronicle-gif-branding branch September 27, 2026 15:15
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