Nicky Leach and Paperclip
68ea3fcf53
test(ui): stabilize annotation popover submit-shortcut test ( #11330 )
...
## Thinking Path
> - Paperclip is the open source app people use to manage AI agents for
work
> - The board UI lets users add comments to document annotations
> - The annotation popover test submits a comment with a keyboard
shortcut
> - React can delay the controlled textarea update under load
> - The test can then send the shortcut before the handler sees the
typed value
> - This pull request waits for the value update before it sends the
shortcut
> - The benefit is a stable test that checks the real submit path
## Linked Issues or Issue Description
**What happened?**
The annotation popover test typed a comment and sent the submit shortcut
in one synchronous step. Under load, React sometimes had not committed
the typed value when the handler ran. The mutation then ran zero times.
**Expected behavior**
The test should wait for the controlled textarea value before it sends
the submit shortcut. The handler should read the comment and call the
create mutation.
**Steps to reproduce**
1. Run `npx vitest run
src/components/DocumentAnnotationPopover.test.tsx` from `ui/`.
2. Repeat the test under system load.
3. Observe intermittent failures where the create mutation runs zero
times.
**Paperclip version or commit**
The test runs against commit `9a08def5752bb13e4cbcb304c6295e175c92db3c`.
**Deployment mode**
This change affects the UI test suite only. It does not depend on a
deployment mode.
## What Changed
- Wait for the Comment button to enable after the controlled value
updates.
- Send the submit shortcut after React commits the typed value.
- Keep the test focused on the compose-mode submit path.
## Verification
- The author ran `npx vitest run
src/components/DocumentAnnotationPopover.test.tsx` from `ui/` with 3
tests passing.
- The current handoff worktree could not repeat the test because its
installed dependencies lack `react/jsx-runtime`.
- GitHub Actions will run the required project checks.
## Risks
Low risk. The change updates one UI test file and does not change
product code.
## Model Used
OpenAI Codex, GPT-5. The model used tool calls and code execution. The
context window size was not provided.
## Checklist
- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` /
`Closes: #` / `Refs: #` OR (b) described the issue in-PR following the
relevant issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge
Co-authored-by: Paperclip <noreply@paperclip.ing >
2026-08-13 11:44:29 -07:00
..
2026-07-30 11:37:00 -07:00
2026-07-14 15:31:12 -05:00
2026-07-08 17:15:45 -07:00
2026-07-10 17:14:28 -07:00
2026-07-16 15:50:45 -05:00
2026-07-07 16:22:16 -05:00
2026-07-08 17:15:45 -07:00
2026-08-12 11:41:40 -07:00
2026-07-27 19:05:44 -05:00
2026-08-06 16:19:22 -07:00
2026-08-07 00:42:08 -05:00
2026-08-12 11:41:40 -07:00
2026-07-09 08:30:46 -05:00
2026-08-12 16:43:31 -07:00
2026-08-03 16:25:31 -07:00
2026-07-07 16:22:16 -05:00
2026-05-06 06:30:44 -05:00
2026-07-09 17:38:34 -05:00
2026-07-07 20:30:09 -05:00
2026-07-09 13:08:56 -05:00
2026-07-09 17:38:34 -05:00
2026-05-07 12:24:02 -05:00
2026-06-11 23:31:39 -07:00
2026-07-22 08:04:39 -05:00
2026-07-29 12:26:07 -07:00
2026-08-05 10:45:08 -05:00
2026-08-06 18:26:44 -07:00
2026-06-11 16:32:55 -05:00
2026-08-07 14:55:34 -07:00
2026-08-12 08:58:25 -07:00
2026-07-08 19:05:03 -07:00
2026-08-12 08:58:25 -07:00
2026-03-23 16:57:27 -05:00
2026-07-20 18:00:34 -05:00
2026-07-20 18:00:34 -05:00
2026-06-18 21:26:36 -07:00
2026-08-05 21:49:40 -05:00
2026-08-05 21:49:40 -05:00
2026-07-29 17:58:50 -07:00
2026-07-29 17:58:50 -07:00
2026-08-07 16:28:04 -05:00
2026-08-07 16:28:04 -05:00
2026-08-11 19:16:19 -07:00
2026-08-11 19:16:19 -07:00
2026-07-08 17:15:45 -07:00
2026-08-12 16:08:22 -07:00
2026-08-12 16:08:22 -07:00
2026-07-14 15:40:08 -05:00
2026-07-14 15:40:08 -05:00
2026-08-07 16:28:04 -05:00
2026-08-07 16:28:04 -05:00
2026-06-23 09:00:14 -05:00
2026-07-08 17:15:45 -07:00
2026-07-07 16:22:16 -05:00
2026-07-10 17:09:57 -05:00
2026-08-11 14:23:57 -04:00
2026-08-11 14:23:57 -04:00
2026-03-16 15:11:01 -05:00
2026-07-31 10:49:35 -07:00
2026-08-02 12:42:45 -07:00
2026-05-13 16:41:36 -05:00
2026-07-07 16:22:16 -05:00
2026-07-08 17:15:45 -07:00
2026-08-05 19:14:51 -07:00
2026-07-07 16:22:16 -05:00
2026-08-07 19:51:03 -05:00
2026-07-07 16:22:16 -05:00
2026-07-17 11:03:07 -05:00
2026-08-12 16:43:22 -07:00
2026-08-12 16:43:22 -07:00
2026-07-09 16:29:30 -05:00
2026-07-09 16:29:30 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-07-07 16:22:16 -05:00
2026-07-07 16:22:16 -05:00
2026-07-07 16:22:16 -05:00
2026-07-29 17:58:50 -07:00
2026-07-07 16:22:16 -05:00
2026-07-09 19:32:58 -05:00
2026-07-24 08:34:30 -07:00
2026-08-04 23:02:51 -05:00
2026-08-04 23:02:51 -05:00
2026-06-23 08:27:19 -05:00
2026-06-23 08:27:19 -05:00
2026-08-05 10:45:08 -05:00
2026-07-07 16:22:16 -05:00
2026-07-30 11:37:00 -07:00
2026-07-30 11:37:00 -07:00
2026-07-07 16:22:16 -05:00
2026-06-11 16:32:55 -05:00
2026-06-11 16:32:55 -05:00
2026-07-17 11:03:07 -05:00
2026-07-17 11:03:07 -05:00
2026-08-05 10:45:08 -05:00
2026-08-05 09:55:01 -05:00
2026-08-05 09:55:01 -05:00
2026-08-02 10:47:03 -05:00
2026-08-02 10:47:03 -05:00
2026-08-05 09:55:01 -05:00
2026-08-05 09:55:01 -05:00
2026-08-11 14:23:57 -04:00
2026-08-11 14:23:57 -04:00
2026-08-03 21:31:45 -05:00
2026-05-19 15:52:39 -05:00
2026-07-08 17:15:45 -07:00
2026-07-07 15:17:38 -05:00
2026-08-12 11:41:40 -07:00
2026-08-12 11:41:40 -07:00
2026-08-13 11:44:29 -07:00
2026-08-12 11:41:40 -07:00
2026-07-09 22:11:03 -05:00
2026-07-09 17:36:53 -05:00
2026-07-14 15:31:12 -05:00
2026-07-14 15:31:12 -05:00
2026-07-09 16:29:30 -05:00
2026-07-09 16:29:30 -05:00
2026-07-05 05:58:20 -05:00
2026-07-07 16:22:16 -05:00
2026-07-31 15:54:23 -05:00
2026-08-02 20:24:52 -07:00
2026-08-02 20:24:52 -07:00
2026-07-07 16:22:16 -05:00
2026-07-08 17:15:45 -07:00
2026-07-08 17:15:45 -07:00
2026-05-05 07:42:57 -05:00
2026-07-08 17:15:45 -07:00
2026-06-26 06:05:57 -05:00
2026-07-07 16:22:16 -05:00
2026-08-05 10:45:08 -05:00
2026-02-17 09:57:00 -06:00
2026-07-07 16:22:16 -05:00
2026-03-16 15:11:01 -05:00
2026-07-07 16:22:16 -05:00
2026-08-03 16:25:31 -07:00
2026-07-07 16:22:16 -05:00
2026-07-09 13:08:56 -05:00
2026-07-09 13:08:56 -05:00
2026-04-10 22:26:21 -05:00
2026-07-01 16:32:49 -05:00
2026-07-05 05:58:20 -05:00
2026-06-30 07:53:40 -07:00
2026-07-07 16:22:16 -05:00
2026-07-16 16:49:18 -05:00
2026-07-16 16:49:18 -05:00
2026-07-17 11:03:07 -05:00
2026-04-24 09:39:21 -05:00
2026-08-03 16:25:31 -07:00
2026-08-12 11:41:40 -07:00
2026-08-12 11:41:40 -07:00
2026-06-07 17:23:53 -05:00
2026-06-20 09:42:53 -07:00
2026-07-22 20:47:00 -07:00
2026-07-22 20:47:00 -07:00
2026-07-09 13:08:56 -05:00
2026-07-09 13:08:56 -05:00
2026-08-05 15:59:01 -05:00
2026-08-05 15:59:01 -05:00
2026-07-09 22:11:03 -05:00
2026-07-09 22:11:03 -05:00
2026-06-22 10:50:31 -05:00
2026-08-04 12:51:06 -05:00
2026-08-11 09:06:21 -07:00
2026-08-06 10:29:07 -05:00
2026-07-05 05:58:20 -05:00
2026-07-08 17:15:45 -07:00
2026-05-15 08:54:55 -05:00
2026-08-05 10:45:08 -05:00
2026-08-12 11:41:40 -07:00
2026-08-12 11:41:40 -07:00
2026-08-05 23:12:41 -05:00
2026-08-05 10:45:08 -05:00
2026-08-04 23:02:51 -05:00
2026-08-04 23:02:51 -05:00
2026-08-06 16:19:22 -07:00
2026-08-06 16:19:22 -07:00
2026-07-09 14:25:48 -07:00
2026-08-05 23:12:41 -05:00
2026-07-31 18:43:40 -07:00
2026-07-18 14:39:37 -05:00
2026-07-18 14:39:37 -05:00
2026-07-08 17:15:45 -07:00
2026-08-12 11:41:40 -07:00
2026-07-03 14:40:50 -05:00
2026-07-22 20:47:00 -07:00
2026-07-22 20:47:00 -07:00
2026-04-21 10:02:52 -05:00
2026-07-07 16:22:16 -05:00
2026-06-06 10:10:01 -05:00
2026-07-08 17:15:45 -07:00
2026-08-05 23:12:41 -05:00
2026-08-03 10:20:04 -05:00
2026-08-05 23:12:41 -05:00
2026-07-10 13:21:12 -05:00
2026-05-09 18:22:17 -05:00
2026-07-08 17:15:45 -07:00
2026-07-07 16:22:16 -05:00
2026-07-08 17:15:45 -07:00
2026-08-06 16:19:22 -07:00
2026-08-06 16:19:22 -07:00
2026-07-31 18:43:40 -07:00
2026-08-11 09:06:21 -07:00
2026-08-11 09:06:21 -07:00
2026-08-05 23:12:41 -05:00
2026-08-05 10:45:08 -05:00
2026-08-04 23:02:51 -05:00
2026-08-04 23:02:51 -05:00
2026-07-14 15:31:12 -05:00
2026-07-14 15:31:12 -05:00
2026-08-05 23:12:41 -05:00
2026-08-06 16:19:22 -07:00
2026-06-09 13:25:17 -05:00
2026-07-10 17:09:57 -05:00
2026-08-12 21:02:12 -07:00
2026-08-12 21:02:12 -07:00
2026-07-09 17:38:34 -05:00
2026-05-11 21:07:06 -05:00
2026-06-29 13:24:33 -07:00
2026-05-22 08:12:52 -05:00
2026-06-23 09:00:14 -05:00
2026-08-11 12:11:45 -04:00
2026-08-11 12:11:45 -04:00
2026-05-22 10:13:47 -05:00
2026-08-11 13:59:57 -04:00
2026-08-11 13:59:57 -04:00
2026-06-23 08:27:19 -05:00
2026-07-10 17:12:25 -05:00
2026-05-25 13:12:41 -05:00
2026-07-07 16:22:16 -05:00
2026-03-11 08:20:24 -05:00
2026-05-18 08:50:06 -05:00
2026-07-08 17:15:45 -07:00
2026-05-23 09:09:40 -05:00
2026-08-05 10:45:08 -05:00
2026-08-11 18:34:42 -05:00
2026-08-12 11:49:05 -04:00
2026-08-12 11:49:05 -04:00
2026-08-11 18:34:42 -05:00
2026-07-07 16:22:16 -05:00
2026-08-11 09:06:21 -07:00
2026-08-07 14:55:34 -07:00
2026-08-07 14:55:34 -07:00
2026-03-05 15:24:20 +01:00
2026-04-08 06:02:34 -05:00
2026-05-05 07:42:57 -05:00
2026-07-07 16:22:16 -05:00
2026-07-22 16:58:00 -05:00
2026-03-02 16:08:59 -06:00
2026-06-26 12:02:44 -05:00
2026-07-09 17:36:53 -05:00
2026-06-26 12:02:44 -05:00
2026-06-26 12:02:44 -05:00
2026-06-26 12:02:44 -05:00
2026-07-08 17:15:45 -07:00
2026-06-26 12:02:44 -05:00
2026-07-31 10:49:35 -07:00
2026-07-31 10:49:35 -07:00
2026-07-31 10:49:35 -07:00
2026-07-07 16:22:16 -05:00
2026-08-03 15:13:43 -05:00
2026-08-11 11:40:57 -07:00
2026-06-06 09:17:27 -05:00
2026-06-06 09:17:27 -05:00
2026-07-24 07:19:58 -07:00
2026-06-25 21:38:14 -05:00
2026-07-08 17:15:45 -07:00
2026-08-11 09:06:21 -07:00
2026-08-11 09:06:21 -07:00
2026-07-07 16:22:16 -05:00
2026-07-22 17:31:54 -05:00
2026-03-20 20:33:36 +00:00
2026-07-06 07:57:23 -05:00
2026-06-09 13:25:17 -05:00
2026-07-09 16:29:30 -05:00
2026-07-05 05:58:20 -05:00
2026-07-05 05:58:20 -05:00
2026-07-07 16:22:16 -05:00
2026-06-19 13:06:41 -07:00
2026-06-19 13:06:41 -07:00
2026-06-09 17:04:25 -05:00
2026-07-24 16:47:24 -05:00
2026-07-08 17:15:45 -07:00
2026-07-16 15:50:45 -05:00
2026-08-05 16:34:04 -05:00
2026-07-07 16:22:16 -05:00
2026-06-09 18:55:01 -05:00
2026-07-07 16:22:16 -05:00
2026-06-09 18:55:01 -05:00
2026-07-09 14:25:48 -07:00
2026-06-09 17:04:25 -05:00
2026-06-26 12:00:16 -05:00
2026-07-07 16:22:16 -05:00
2026-06-25 11:52:36 -05:00
2026-06-25 11:52:36 -05:00
2026-04-03 21:11:20 +01:00
2026-07-09 18:19:49 -05:00
2026-07-09 18:19:49 -05:00
2026-06-19 13:01:17 -05:00
2026-07-21 12:49:11 -05:00
2026-07-07 16:22:16 -05:00
2026-06-24 13:21:32 -05:00
2026-07-07 16:22:16 -05:00
2026-06-09 13:25:17 -05:00
2026-07-31 16:46:26 -07:00
2026-07-31 16:46:26 -07:00
2026-08-04 23:00:14 -05:00
2026-08-04 23:30:23 -05:00
2026-08-06 12:13:14 -05:00
2026-08-06 12:13:14 -05:00
2026-08-12 16:43:04 -07:00
2026-08-12 16:43:04 -07:00
2026-08-11 09:06:21 -07:00
2026-08-11 09:06:21 -07:00
2026-07-09 16:29:30 -05:00
2026-07-14 15:40:08 -05:00
2026-07-27 19:13:35 -05:00
2026-07-24 08:34:30 -07:00
2026-06-09 13:25:17 -05:00
2026-07-07 16:22:16 -05:00
2026-07-13 20:55:54 -05:00
2026-07-07 16:22:16 -05:00
2026-07-07 16:22:16 -05:00
2026-06-09 13:25:17 -05:00
2026-07-27 19:13:35 -05:00
2026-07-24 08:34:30 -07:00
2026-07-09 13:08:56 -05:00
2026-07-14 15:31:12 -05:00
2026-07-14 15:31:12 -05:00
2026-07-07 16:22:16 -05:00
2026-07-07 16:22:16 -05:00
2026-07-07 16:22:16 -05:00
2026-07-05 05:58:20 -05:00
2026-08-04 13:54:40 -05:00
2026-06-01 22:12:03 +00:00
2026-08-05 10:45:08 -05:00
2026-07-21 09:14:29 -05:00
2026-07-21 09:14:29 -05:00
2026-06-25 11:52:36 -05:00
2026-07-14 15:31:12 -05:00
2026-07-24 12:26:43 -05:00
2026-07-10 20:18:33 -05:00
2026-07-10 20:18:33 -05:00
2026-07-31 10:49:35 -07:00
2026-07-31 10:49:35 -07:00
2026-07-17 11:03:07 -05:00
2026-08-12 16:43:22 -07:00
2026-08-12 16:43:22 -07:00
2026-07-08 17:15:45 -07:00
2026-07-08 17:15:45 -07:00
2026-05-06 06:05:58 -05:00
2026-08-07 18:41:52 -07:00
2026-08-12 11:41:40 -07:00
2026-08-12 11:41:40 -07:00
2026-06-12 12:59:14 -07:00
2026-06-12 12:59:14 -07:00
2026-07-10 17:09:57 -05:00
2026-06-05 16:48:02 -05:00
2026-07-07 16:22:16 -05:00
2026-07-17 11:03:07 -05:00
2026-07-17 11:03:07 -05:00
2026-06-26 06:05:57 -05:00
2026-07-07 16:22:16 -05:00
2026-08-11 12:11:45 -04:00
2026-08-11 12:11:45 -04:00
2026-06-09 17:17:43 -05:00
2026-08-11 12:11:45 -04:00
2026-08-02 10:37:10 -05:00
2026-08-02 10:37:10 -05:00
2026-07-16 21:07:04 -05:00
2026-08-05 10:45:08 -05:00
2026-08-05 10:45:08 -05:00