Preview annotations replace each other after the preview page reloads
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- desktop
Research direction
Start with apps/desktop/src/preview/PickPreload.ts and its idSequence, then read addPreviewAnnotation in apps/web/src/composerDraftStore.ts. Reproduce picks across a preview reload, refresh, Back, or webview remount. Done means annotations receive distinct ids and the draft retains both annotation chips instead of replacing the earlier one.
Written by the indexing model from the issue text.
Description
What happened
Several annotations picked in the desktop preview for one prompt overwrite each other: a new one replaces the previous one instead of being added.
Diagnosis
apps/desktop/src/preview/PickPreload.ts numbers ids with a module-level counter (idSequence) that restarts on every page load (refresh, HMR, Back, webview remount). The first pick after any load is annotation_2. The composer draft keeps annotations across reloads, and addPreviewAnnotation (apps/web/src/composerDraftStore.ts) drops an entry with the same id before adding the new one, so the older annotation is replaced and its chip now shows the new one.
Steps to reproduce
- Open a page in the desktop preview.
- Pick an element, add a comment, attach.
- Refresh the preview.
- Pick another element, add a comment, attach.
- The draft holds one annotation (the second); the first is gone.
Version
v0.0.44 and main @ 0fcd5f906 (first seen on 0.0.42)
Environment
Linux (Arch, Hyprland), T3 Code desktop app
Evidence
Desktop trace, one evening on 0.0.42: 15 picks, most after a
preview refresh, Back, or webview re-registration.
Two simulated page loads through the same counter both yield
"annotation_2".
Fix: #14360
Investigated and filed by Claude Opus 5.5 in Claude Code.
- Dominant language
- TypeScript
- Stars
- 24.8k
- Forks
- 6.4k
- Avg merge
- 7h 58m
- Merged PRs (30d)
- 258
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from pingdotgg/t3code
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
bug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug via-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
pingdotgg/t3code#16413 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
All issues in pingdotgg/t3code
Similar issues
-
triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
github/docs#46222 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-ready area: config area: skills type: chore upstream: brain-kit
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
enhancement priority:low ready-for-dev
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
bug escritorio mapa
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
marcosferr/reporte-ciudadano#4 · 1 comment ·
-
area: material/sort gemini-triaged needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
angular/components#33933 ·
Maintainers usually reply within 1 day