Skip to content
Draft

v2.4.4 #1312

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
eb58a8b
Fix bug
jaykim1213 Apr 8, 2026
3bb1410
Update analysis interface tests
jaykim1213 Apr 8, 2026
10ca5ce
Update interface unit tests
jaykim1213 Apr 8, 2026
9c4f4b8
Update response tests
jaykim1213 Apr 8, 2026
a7932a1
Rename files
jaykim1213 Apr 8, 2026
8500202
Update components tests
jaykim1213 Apr 9, 2026
57b35c6
Update unit tests
jaykim1213 Apr 9, 2026
4aac63d
Revert removed tests and update unit tests
jaykim1213 Apr 9, 2026
ab10d3a
Update unit tests
jaykim1213 Apr 9, 2026
a2a259b
Remove unused file
jaykim1213 Apr 9, 2026
146f98a
Remove unused package
jaykim1213 Apr 9, 2026
4e0d0b1
Address PR comments
jaykim1213 Apr 9, 2026
dae4156
Add unit test and fix bug
jaykim1213 Apr 9, 2026
1a0ce53
Add time out
jaykim1213 Apr 9, 2026
5040df6
Fix typo in library calvi question description
jaykim1213 Apr 10, 2026
ba350aa
Fix UI break when user rejects audio recording
jaykim1213 Apr 10, 2026
42fabb0
Add aria-disabled and tab index -1 to mic error icon
jaykim1213 Apr 10, 2026
9be9e0b
Revert record screen field in library-screen-recording
jaykim1213 Apr 10, 2026
4854c4f
Add screen recording icon to timeline
jaykim1213 Apr 10, 2026
7a07855
Address PR comment
jaykim1213 Apr 10, 2026
6574e31
Merge branch 'dev' into jk/tests
jaykim1213 Apr 16, 2026
7196521
Fix failing tests
jaykim1213 Apr 16, 2026
d3f7e0f
Fix merge errors
jaykim1213 Apr 16, 2026
4fcf44f
Merge branch 'dev' into jk/fixMicPermissionBug
jaykim1213 Apr 20, 2026
503a9c7
Fix mic icon bug if mic permission is disabled
jaykim1213 Apr 20, 2026
96c1761
Fix back button enabled in the study replay
jaykim1213 Apr 20, 2026
b5ee544
Fix replay task bug
jaykim1213 Apr 20, 2026
17a6caf
Fix replay teardown cleanup
JackWilb Apr 21, 2026
06d0c6d
Move tests into sibling test folders
JackWilb Apr 21, 2026
1a5ef58
Add error messages
jaykim1213 Apr 23, 2026
03cac20
Add error summary message
jaykim1213 Apr 23, 2026
42329cd
Split response error handling logic
jaykim1213 Apr 23, 2026
4bbf44e
Remove duplicate codes and add comments to response errors
jaykim1213 Apr 23, 2026
1826511
Add stimulus validation
jaykim1213 Apr 24, 2026
a1a41c8
Add next question button
jaykim1213 Apr 24, 2026
c413e36
Fix minor things
jaykim1213 Apr 24, 2026
b27d501
Remove component error storing
jaykim1213 Apr 25, 2026
dd94949
Fix response warning to be shown after stimulus error is revealed
jaykim1213 Apr 25, 2026
70fa917
Fix playwright test and bug with the check answer
jaykim1213 Apr 27, 2026
4e0e9b2
Revert configs
jaykim1213 Apr 27, 2026
a308f89
Fix test
jaykim1213 Apr 27, 2026
f1aeb75
Address PR comments
jaykim1213 Apr 27, 2026
51743cd
Bump the npm_and_yarn group across 1 directory with 2 updates
dependabot[bot] Apr 28, 2026
4cc9d14
Speed up first load by clearing the hot path from un-necessary awaits
JackWilb May 1, 2026
9ad7f67
Prevent metadata writes in demo mode
JackWilb May 7, 2026
cb034d6
Fix showing app header warning
jaykim1213 May 12, 2026
539579b
Merge branch 'dev' into jk/fixMicPermissionBug
jaykim1213 May 12, 2026
3e091e8
Merge branch 'dev' into jk/tests
jaykim1213 May 12, 2026
27a7724
Fix check answer logic
jaykim1213 May 12, 2026
6ecee50
Merge branch 'dev' into jay/highlightUndone
jaykim1213 May 12, 2026
e9f1f18
Merge branch 'dev' into jk/fixReplayBug
jaykim1213 May 12, 2026
dde8728
Address PR comments
jaykim1213 May 12, 2026
342494b
Refactor GlobalConfigParser to reduce config fetches
JackWilb May 12, 2026
32a97ad
Enhance Shell component with loading overlay and completion check logic
JackWilb May 13, 2026
d1d7704
Add error handling and user feedback for participant completion check…
JackWilb May 13, 2026
6b84aaf
Refactor Shell component to improve loading state handling and simpli…
JackWilb May 13, 2026
84c582b
Refactor AuthProvider to enhance loading state handling and condition…
JackWilb May 13, 2026
d87b94e
Eliminate unnecessary await
JackWilb May 13, 2026
f32fbf6
Handle transient completion-status lookup failures to allow study entry
JackWilb May 13, 2026
aa021ce
Merge pull request #1222 from revisit-studies/speedup-first-load
JackWilb May 13, 2026
056dcbe
Merge branch 'dev' into disconnected-errors
JackWilb May 13, 2026
1702f50
Fix small issue with operators
JackWilb May 13, 2026
df8a9ab
Refactor isStorageStartupFailure function to simplify logic and remov…
JackWilb May 13, 2026
29824f6
Merge pull request #1164 from revisit-studies/disconnected-errors
JackWilb May 13, 2026
903b777
Fix microphone permission handling in AppHeader component tests
JackWilb May 13, 2026
aa41937
Merge pull request #1196 from revisit-studies/jk/fixMicPermissionBug
JackWilb May 13, 2026
e27d57f
Merge pull request #1215 from revisit-studies/dependabot/npm_and_yarn…
JackWilb May 13, 2026
75c8f12
Fix replay previous-step navigation
JackWilb May 13, 2026
622b459
Fix replay bug and remove test fixture
JackWilb May 14, 2026
a0eb2d0
Merge branch 'dev' into jk/fixReplayBug
JackWilb May 14, 2026
e77cca1
Remove currentTrial query param plumbing
JackWilb May 14, 2026
a2b6f1e
Fix dynamic backward navigation
JackWilb May 14, 2026
8e5726d
Refactor tests to preserve dynamic child routes from pathname and imp…
JackWilb May 14, 2026
46ae2c4
Merge pull request #1214 from revisit-studies/jk/fixReplayBug
JackWilb May 14, 2026
0a0717a
Initial plan
Copilot May 14, 2026
e3f2b46
feat: add component auto-advance timeout options
Copilot May 14, 2026
1778c8f
test: refine timeout warning messaging
Copilot May 14, 2026
5babc03
fix: handle auto-advance warning placeholders consistently
Copilot May 14, 2026
f7b45d5
refactor: simplify NextButton and useNextStep hooks
JackWilb May 15, 2026
6e9bf73
fix: correct E2E test setup for timeout component study
JackWilb May 15, 2026
db2fdc7
Merge branch 'dev' into jk/tests
JackWilb May 15, 2026
dd68e72
Move some tests and fix some failures
JackWilb May 18, 2026
b277aea
Refactor timestamp handling in FirebaseStorageEngine and update tests…
JackWilb May 18, 2026
73506df
fix: prevent in-memory corruption on reject failure and align Supabas…
JackWilb May 19, 2026
665ade7
fix: useReplay cleanup targets replayRef.current where listeners are …
JackWilb May 19, 2026
a2099fd
Address feedback from review
JackWilb May 21, 2026
26214e5
Merge pull request #1227 from revisit-studies/copilot/add-timeout-opt…
JackWilb May 21, 2026
53673b5
Merge branch 'dev' into jk/tests
JackWilb May 21, 2026
2d35219
Fix replay timer cleanup separation
JackWilb May 21, 2026
100a1db
Restore claimed slots when undoing rejection
JackWilb May 21, 2026
67ca24b
Tighten component test isolation
JackWilb May 21, 2026
fdb2e76
Add storage rejection regression tests
JackWilb May 21, 2026
c914c6b
Fix storage rejection state rollback
JackWilb May 21, 2026
ba66485
Move component tests into sibling folders
JackWilb May 21, 2026
16e6017
Fix review follow-ups and typecheck
JackWilb May 21, 2026
4014c4c
Set min width to prevent negative task width
jaykim1213 May 21, 2026
3af76fb
Separating provenance data from answers (#1230)
ZachCutler04 May 22, 2026
c91fe65
Merge branch 'dev' into jk/tests
JackWilb May 22, 2026
83c33a7
Merge branch 'dev' into jay/participantView
jaykim1213 May 27, 2026
1483567
Add white space no wrap to prevent truncating
jaykim1213 May 27, 2026
bd87e63
Make detail panel full width for replay timeline
jaykim1213 May 27, 2026
7d361ee
Remove next question button
jaykim1213 May 27, 2026
78784a4
Merge branch 'dev' into jay/highlightUndone
jaykim1213 May 27, 2026
db1277b
Fix test
jaykim1213 May 27, 2026
4de2f8e
Fix test
jaykim1213 May 27, 2026
1ef0297
Fix iframe controller status always true
jaykim1213 May 28, 2026
6e82719
Fix reject participant button - participant count, gap
jaykim1213 May 28, 2026
797b1a6
Update the screen recording icon color
jaykim1213 May 28, 2026
709ba5b
Fix plural wording for reject participants
jaykim1213 May 28, 2026
1307d06
Refactor reject participants label
jaykim1213 May 28, 2026
d11fccb
Fix useNextStep skip evaluation typing
JackWilb May 28, 2026
794f080
Fix Shell completion check error visibility
JackWilb May 28, 2026
7102055
Fix test
JackWilb May 28, 2026
87ad730
Add component label max width
jaykim1213 May 28, 2026
91ee737
Add horizontal scrolling
jaykim1213 May 28, 2026
c787ade
Separate this PR in to two
jaykim1213 May 28, 2026
3e18625
Revert
jaykim1213 May 28, 2026
d957963
Match font size in participant view
jaykim1213 May 28, 2026
151335f
Merge branch 'main' into dev
JackWilb May 28, 2026
9bd772b
Merge pull request #1235 from revisit-studies/jay/UIfix
jaykim1213 May 29, 2026
35c4c4d
Update metacell to use null instead of N/A and update font size
jaykim1213 May 29, 2026
e509fd1
Add dimming other labels if hovered over
jaykim1213 May 29, 2026
d3a9ec1
Add comments
jaykim1213 Jun 2, 2026
ec21ffb
Fix component label overlap when hovering over
jaykim1213 Jun 3, 2026
a6c54f8
Create a release check list template
jaykim1213 Jun 3, 2026
8c2a962
Revert "Create a release check list template"
jaykim1213 Jun 3, 2026
edaefa2
Create a release check list template
jaykim1213 Jun 3, 2026
b566b62
add ueq and ueqs
tingying-he Jun 4, 2026
5af2f31
add example studies of ueq and ueqs
tingying-he Jun 4, 2026
54f0ec9
Use matrix responses for UEQ libraries
JackWilb Jun 4, 2026
726ae06
Merge remote-tracking branch 'origin/dev' into jay/highlightUndone
JackWilb Jun 4, 2026
422da5a
Update name to identifier
jaykim1213 Jun 4, 2026
94eb799
Merge pull request #1232 from revisit-studies/jay/participantView
jaykim1213 Jun 4, 2026
eb7c2e8
Update release checklist
jaykim1213 Jun 4, 2026
d0aea60
Merge pull request #1246 from revisit-studies/th/ueqs
JackWilb Jun 4, 2026
d2207d8
resolves #1193
EdenWuyifan Jun 4, 2026
2291a8f
resolves #1213
EdenWuyifan Jun 4, 2026
a20e6b9
Add revisit py checklist
jaykim1213 Jun 4, 2026
e442537
Add matrix side labels for UEQ libraries
JackWilb Jun 5, 2026
491d0d3
Add a couple more steps
JackWilb Jun 5, 2026
f0acb53
Merge pull request #1249 from revisit-studies/codex/matrix-side-labels
JackWilb Jun 5, 2026
bb6f915
Merge pull request #1244 from revisit-studies/jay/release
JackWilb Jun 5, 2026
f25c1c1
Merge remote-tracking branch 'origin/dev' into jay/highlightUndone
JackWilb Jun 5, 2026
412c9ee
Optimize Playwright browser installs
JackWilb Jun 5, 2026
bc9a8b5
Fix persisted stimulus validation state
JackWilb Jun 5, 2026
4377489
Merge remote-tracking branch 'origin/dev' into jay/highlightUndone
JackWilb Jun 5, 2026
7853968
Merge pull request #1209 from revisit-studies/jay/highlightUndone
JackWilb Jun 5, 2026
465ed48
feat: make version extracted from global.json, metaData tidy csv now …
EdenWuyifan Jun 6, 2026
a49c245
feat: move version check and version tag to header bar, fix the cente…
EdenWuyifan Jun 9, 2026
04c39c3
Merge remote-tracking branch 'origin/dev' into jk/tests
JackWilb Jun 9, 2026
6a7d8c7
Merge pull request #1243 from revisit-studies/ew/bugfixes
EdenWuyifan Jun 9, 2026
d1a0731
Merge branch 'main' into dev
JackWilb Jun 9, 2026
99ba7c8
feat: add script to clear out Firebase study data with configurable o…
JackWilb Jun 9, 2026
6c67f4f
Improve Firebase cleanup script
JackWilb Jun 9, 2026
221afea
docs: update release checklist to include Firebase cleanup script com…
JackWilb Jun 9, 2026
0edb034
Final pass
JackWilb Jun 10, 2026
a89deb9
Fix review follow-up test issues
JackWilb Jun 10, 2026
0208e9e
Add Svelte Trrack demo
JackWilb Jun 10, 2026
40edf2a
Merge branch 'dev' into jk/tests
JackWilb Jun 10, 2026
e298df0
Fix test mock type errors
JackWilb Jun 10, 2026
edbe935
Visualize study browser skip branching
JackWilb Jun 10, 2026
13cee5c
Refine branch tooltip styling
JackWilb Jun 10, 2026
81903e9
Fix iframe provenance snapshot hydration
JackWilb Jun 10, 2026
468ddb8
Increase Playwright CI timeout
JackWilb Jun 10, 2026
0a14eb3
Fix brittle unit test mocks
JackWilb Jun 10, 2026
e416f37
Merge pull request #1190 from revisit-studies/jk/tests
JackWilb Jun 10, 2026
c5e537e
Update tutorial files
jaykim1213 Jun 10, 2026
8cb388d
Move CALVI and VLAT assets to library-assets repo
JackWilb Jun 10, 2026
f0afa72
Document dev PR issue linking workflow
JackWilb Jun 10, 2026
ef9a221
Remove unsupported PR linking guidance
JackWilb Jun 10, 2026
8ad2a40
Allow agents to interact with github
JackWilb Jun 10, 2026
112406b
Warn on default Firebase config
JackWilb Jun 10, 2026
c54433c
Add snapshot participant counts
JackWilb Jun 10, 2026
5cf2854
Address snapshot count review feedback
JackWilb Jun 11, 2026
85aba38
Address default storage warning feedback
JackWilb Jun 11, 2026
00d36bb
Limit snapshot count backfills
JackWilb Jun 11, 2026
1fc349f
Merge pull request #1267 from revisit-studies/codex/1184-snapshot-cou…
JackWilb Jun 11, 2026
847afae
Merge pull request #1263 from revisit-studies/jay/tutorialUpdate
jaykim1213 Jun 11, 2026
1d56430
Merge branch 'dev' into codex/issue-1257-skip-branching
jaykim1213 Jun 11, 2026
5dcc276
Fix merge conflict
jaykim1213 Jun 11, 2026
2818f57
Add re-saving the active config if the stored config file is missing …
jaykim1213 Jun 12, 2026
416ab5a
Add test
jaykim1213 Jun 12, 2026
f424939
Add tidy data handling missing config data
jaykim1213 Jun 12, 2026
ee4c52a
Fix tidy data sorting
jaykim1213 Jun 12, 2026
1f5cc05
Fix missing config handling in cloud storages
jaykim1213 Jun 12, 2026
b9ef6e7
Fix optional chaining for trialConfig
jaykim1213 Jun 12, 2026
c8cd440
Merge branch 'dev' into codex/svelte-trrack-demo
jaykim1213 Jun 12, 2026
42d1faa
Rename default storage config helper
JackWilb Jun 14, 2026
d93f834
Merge pull request #1266 from revisit-studies/codex/default-firebase-…
JackWilb Jun 14, 2026
864142e
Merge pull request #1265 from revisit-studies/codex/library-assets-1219
JackWilb Jun 14, 2026
2176b81
Address skip branching review feedback
JackWilb Jun 14, 2026
c9c466f
Merge pull request #1274 from revisit-studies/jay/tidyDownloadMissing…
JackWilb Jun 14, 2026
f00b762
feat: add qualitative coding downloading for both json and tidy csv, …
EdenWuyifan Jun 16, 2026
0ef9150
feat: remove color, seperate participant tags (one entry per particip…
EdenWuyifan Jun 17, 2026
2cd74ed
Fix go to study button link
jaykim1213 Jun 18, 2026
8ae2eda
Move iframe controller tests
JackWilb Jun 18, 2026
9f49451
Merge pull request #1259 from revisit-studies/codex/svelte-trrack-demo
JackWilb Jun 18, 2026
aca26ee
Use purple skip icon
JackWilb Jun 18, 2026
4543ed5
Merge pull request #1260 from revisit-studies/codex/issue-1257-skip-b…
JackWilb Jun 18, 2026
e9efbd6
Merge pull request #1286 from revisit-studies/jay/goToStudy
jaykim1213 Jun 18, 2026
0ce4258
Merge pull request #1283 from revisit-studies/ew/quanlitative_code
JackWilb Jun 23, 2026
5cbe77d
Fix vega replay against missing signals
jaykim1213 Jul 1, 2026
9746273
Fix layout page break
jaykim1213 Jul 2, 2026
6562e0e
Fix duplicate Check Answer handling on Enter
jaykim1213 Jul 8, 2026
ff7486f
Add Check Answer progress saving
jaykim1213 Jul 9, 2026
12f4bed
Fix Enter handling for Check Answer
jaykim1213 Jul 9, 2026
5c18965
Update test comments
jaykim1213 Jul 9, 2026
2336649
Merge branch 'jay/checkAnswerBug' into jay/stepEnterController
jaykim1213 Jul 9, 2026
54c7545
Add check answer enter handling tests
jaykim1213 Jul 9, 2026
254d95e
Fix trainingAttempts -1 to require a correct answer
jaykim1213 Jul 9, 2026
97f0c1d
Update VegaController test
jaykim1213 Jul 9, 2026
857c5eb
Merge pull request #1292 from revisit-studies/jay/checkAnswerBug
jaykim1213 Jul 13, 2026
a766b6f
Merge pull request #1291 from revisit-studies/jay/styleBug
jaykim1213 Jul 13, 2026
9341b1b
Merge pull request #1290 from revisit-studies/jay/vegaTooltip
jaykim1213 Jul 13, 2026
49568f6
Merge branch 'dev' into jay/refactorCheckAnswerOnEnter
jaykim1213 Jul 14, 2026
e253638
Split release checklist into pre- and post-release templates
jaykim1213 Jul 15, 2026
e620df5
Update pre and post release check list
jaykim1213 Jul 15, 2026
fdf947d
Allow reproducible npm and Yarn installs
JackWilb Jul 16, 2026
0b6530c
Merge pull request #1297 from revisit-studies/jay/releaseFiles
jaykim1213 Jul 16, 2026
13067ae
Fix Trrack undo redo replay
JackWilb Jul 16, 2026
021207d
Generalize provenance traversal recording
JackWilb Jul 16, 2026
db0b41a
Add configurable next button alignment
JackWilb Jul 16, 2026
3c8cb86
Improve study startup loading context
JackWilb Jul 16, 2026
a678d6d
Save Check Answer progress
jaykim1213 Jul 16, 2026
816e1fc
Distinguish unknown response status
JackWilb Jul 16, 2026
36223e5
Fix tag creation behavior
JackWilb Jul 16, 2026
b6d1527
Merge pull request #1294 from revisit-studies/jay/refactorCheckAnswer…
jaykim1213 Jul 16, 2026
03ebc3f
Fix dynamic block answer matching to use exact funcIndex
jaykim1213 Jul 16, 2026
83008bc
Merge branch 'dev' into jay/regexBug
jaykim1213 Jul 16, 2026
4985c1f
Merge pull request #1308 from revisit-studies/codex/1270-loading-ui
JackWilb Jul 17, 2026
b2a53ee
Use grey checkmark for unknown responses
JackWilb Jul 17, 2026
15bd363
Close edit tag menu after save
JackWilb Jul 17, 2026
5397d0a
Merge pull request #1309 from revisit-studies/codex/issue-1084-unknow…
JackWilb Jul 17, 2026
d5170c0
Merge pull request #1307 from revisit-studies/codex/issue-1252-next-b…
JackWilb Jul 17, 2026
14468df
Merge pull request #1310 from revisit-studies/codex/issue-1279-tag-cr…
JackWilb Jul 17, 2026
02541ff
Merge pull request #1313 from revisit-studies/jay/regexBug
JackWilb Jul 17, 2026
fbf8368
Test Trrack analysis replay
JackWilb Jul 17, 2026
809b424
Merge pull request #1229 from revisit-studies/npm-install-compat-pr-1…
JackWilb Jul 17, 2026
9595598
Merge origin/dev into codex/issue-1284-trrack-replay
JackWilb Jul 17, 2026
8c6de98
Fix merged CI test compatibility
JackWilb Jul 17, 2026
3313498
Clean up React test warnings
JackWilb Jul 17, 2026
7f18b80
Merge pull request #1305 from revisit-studies/codex/issue-1284-trrack…
JackWilb Jul 17, 2026
3a96992
Fix replay task ordering
JackWilb Jun 10, 2026
bce4c9e
Finish replay ordering and stabilize demo tests
JackWilb Jul 17, 2026
4bc7e18
Merge pull request #1261 from revisit-studies/codex/issue-1240
JackWilb Jul 17, 2026
9943d36
Refactor response validation
JackWilb Jun 10, 2026
8169e57
Fix lint build workflow node setup
JackWilb Jun 11, 2026
a882dac
Address response validation review feedback
JackWilb Jun 23, 2026
f3fbfe0
Expand response validation contract tests
JackWilb Jul 13, 2026
5a30511
Merge pull request #1264 from revisit-studies/codex/response-validati…
JackWilb Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/post_release_checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
name: Post-release checklist
about: Verify deployment and downstream updates after a reVISit release
title: 'Post-release Checklist vX.Y.Z'
labels: QA
assignees: ''
---
# Post-release Checklist vX.Y.Z

## [Study Repository](https://github.com/revisit-studies/study)

### Release Automation

- [ ] Confirm the `Release new version` workflow completed successfully
- [ ] Confirm the release commit and `vX.Y.Z` tag were created and version-pinned URLs reference the new tag
- [ ] Confirm the GitHub release was created and review the generated release notes
- [ ] Confirm the production deployment completed successfully
- [ ] Smoke test the production website

### Storage

- [ ] Run the Firebase cleanup in dry-run mode and review the planned deletions (`./scripts/clear-out-firebase.sh --include-dev --jobs 8`)
- [ ] Clear Firebase test data (`./scripts/clear-out-firebase.sh --include-dev --jobs 8 --execute`)

## [Documentation Repository](https://github.com/revisit-studies/reVISit-studies.github.io)

- [ ] Confirm the documentation deployment completed successfully
- [ ] Spot-check the live documentation and library list
- [ ] Remove old bug fix version

## [Template Repository](https://github.com/revisit-studies/template)

- [ ] Run the `Sync from Upstream` workflow with `upstream_ref` set to `vX.Y.Z`
- [ ] Confirm the deployment completed successfully
- [ ] Smoke test the deployed website

## [Replication Studies Repository](https://github.com/revisit-studies/replication-studies)

- [ ] Run the `Sync from Upstream` workflow with `upstream_ref` set to `vX.Y.Z`
- [ ] Confirm the deployment completed successfully
- [ ] Smoke test the deployed website

## [ReVISitPy Repository](https://github.com/revisit-studies/revisitpy)

- [ ] Confirm the `Create a new minor version and push to PyPi and GitHub` workflow completed successfully
- [ ] Confirm the new [`revisitpy`](https://pypi.org/project/revisitpy/) version is available on PyPI

## [ReVISitPy Server Repository](https://github.com/revisit-studies/revisitpy-server)

- [ ] Confirm the `Create a new version and push to PyPi and GitHub` workflow completed successfully
- [ ] Confirm the new [`revisitpy-server`](https://pypi.org/project/revisitpy-server/) version is available on PyPI

## TODOs

Create or link issues for any bugs found during post-release verification.
Add any other required follow-up tasks.

- [ ] ...
183 changes: 183 additions & 0 deletions .github/ISSUE_TEMPLATE/pre_release_checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
---
name: Pre-release checklist
about: Prepare and review an upcoming reVISit release
title: 'Pre-release Checklist vX.Y.Z'
labels: QA
assignees: ''
---
# Pre-release Checklist vX.Y.Z

## Release Pull Request

- [ ] Confirm the release pull request targets `main`
- [ ] Confirm the pull request title exactly matches `vX.Y.Z`
- [ ] Confirm all required checks pass
- [ ] Confirm the pull request has the required approvals
- [ ] Confirm the release pull request preview deployed successfully
- [ ] Create the post-release checklist issue and link it here

## [Study Repository](https://github.com/revisit-studies/study)

### Run Studies

Run each study in the release PR preview. Confirm it completes without unexpected errors and its participant data appears correctly in the analysis pages.

#### Demo Studies

- [ ] `demo-html`
- [ ] `demo-html-input`
- [ ] `demo-form-elements`
- [ ] `demo-training`
- [ ] `demo-html-trrack`
- [ ] `demo-svelte-trrack`
- [ ] `demo-react-trrack`
- [ ] `demo-screen-recording`
- [ ] `demo-image`
- [ ] `demo-vega`
- [ ] `demo-video`
- [ ] `demo-dynamic`
- [ ] `demo-condition`
- [ ] `demo-style`
- [ ] `demo-yaml`
- [ ] `demo-ranking-widget`
- [ ] `demo-upset`
- [ ] `demo-choropleth-map`

#### Example Studies

- [ ] `example-VLAT-adaptive`
- [ ] `example-brush-interactions`
- [ ] `example-cleveland`
- [ ] `example-llm-chatbot`
- [ ] `example-mvnv`

#### Tutorials

- [ ] `tutorial`
- [ ] `tutorial-replication`

#### Tests

- [ ] `test-audio`
- [ ] `test-component-timeout`
- [ ] `test-device-restriction`
- [ ] `test-library`
- [ ] `test-likert-matrix`
- [ ] `test-parser-errors`
- [ ] `test-randomization`
- [ ] `test-skip-logic`
- [ ] `test-step-logic`

#### Libraries

- [ ] `library-adaptive-vlat`
- [ ] `library-beauvis`
- [ ] `library-berlin-num`
- [ ] `library-calvi`
- [ ] `library-color-blindness`
- [ ] `library-demographics`
- [ ] `library-graph-literacy-scale`
- [ ] `library-mic-check`
- [ ] `library-mini-vlat`
- [ ] `library-nasa-tlx`
- [ ] `library-previs`
- [ ] `library-quis`
- [ ] `library-sam`
- [ ] `library-screen-recording`
- [ ] `library-smeq`
- [ ] `library-sus`
- [ ] `library-ueq`
- [ ] `library-ueq-s`
- [ ] `library-umux`
- [ ] `library-umux-lite`
- [ ] `library-virtual-chinrest`
- [ ] `library-vlat`

### Analysis Pages

- [ ] Study Summary
- [ ] Filter works correctly
- [ ] Statistics look correct
- [ ] Participant View
- [ ] Filter works correctly
- [ ] Reject / Undo reject participant works correctly
- [ ] Replay timeline looks correct
- [ ] Replay
- [ ] Replay works correctly at different play speeds
- [ ] Check provenance data (audio, screen, etc.)
- [ ] Navigate to the next and previous participant IDs
- [ ] Add participant tags
- [ ] Navigate to the next and previous participant tasks
- [ ] Add task tags
- [ ] Load transcripts (e.g. `demo-screen-recording`)
- [ ] Download audio/screen recordings (e.g. `demo-screen-recording`)
- [ ] Reject / Undo reject participant works correctly
- [ ] Trial Stats
- [ ] Filter works correctly
- [ ] Overview stats look correct
- [ ] Vega stimulus for answers looks correct
- [ ] Coding
- [ ] Filter works correctly
- [ ] Add text tags
- [ ] Add annotations
- [ ] Replay works correctly at different play speeds
- [ ] Navigate to the next and previous participant IDs
- [ ] Add participant tags
- [ ] Navigate to the next and previous participant tasks
- [ ] Add task tags
- [ ] Load transcripts (e.g. `demo-screen-recording`)
- [ ] Download audio/screen recordings (e.g. `demo-screen-recording`)
- [ ] Reject / Undo reject participant works correctly
- [ ] Live Monitor
- [ ] Filter works correctly
- [ ] Check participant count header
- [ ] Check live monitor tracker
- [ ] Config
- [ ] Filter works correctly
- [ ] Download configs (by selecting from the table) / Download config (single download from actions column)
- [ ] Compare configs
- [ ] View config
- [ ] Manage
- [ ] Changing ReVISit Modes updates the study card and study browser
- [ ] Add a new stage and edit stage color
- [ ] Create a data snapshot
- [ ] Confirm Manage is only accessible to administrators
- [ ] File download
- [ ] JSON export
- [ ] Tidy download export
- [ ] Download audio recordings
- [ ] Download screen recordings
- [ ] Download provenance data
- [ ] Change study from the study dropdown
- [ ] Click Go to study and confirm it opens the study

### Generated Files

- [ ] If parser types changed, regenerate the study config schemas using `yarn generate-schemas`
- [ ] If libraries changed, regenerate library documentation and example studies using `yarn generate-library-docs` and `yarn generate-library-examples`

### Documentation

- [ ] Update comments in `store/types.ts`, `parser/types.ts`, `storage/types.ts`, `storage/engines/types.ts`
- [ ] Update `typedocReadMe.md`
- [ ] Verify documentation links in the [Study Repository](https://github.com/revisit-studies/study) are up-to-date and point to the current reVISit documentation pages

## [Documentation Repository](https://github.com/revisit-studies/reVISit-studies.github.io)

- [ ] Update documentation for release changes
- [ ] Update screenshots
- [ ] Review documentation for accuracy, typos, outdated content, and expired links
- [ ] Review [library list](https://revisit.dev/docs/designing-studies/plugin-libraries/)
- [ ] Check the adoption Google Form for newly published papers
- [ ] Validate example code

## [ReVISitPy Repository](https://github.com/revisit-studies/revisitpy)

- [ ] If parser types or schemas changed, confirm they are compatible with ReVISitPy code generation

## TODOs

Create or link any release-blocking issues or bugs found during release QA.
Add any other tasks that must be completed before the release.

- [ ] ...
52 changes: 52 additions & 0 deletions .github/workflows/dependency-lock-drift.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Dependency lockfile drift

on:
pull_request:
paths:
- '.github/workflows/dependency-lock-drift.yml'
- '.npmrc'
- 'package.json'
- 'package-lock.json'
- 'scripts/check-lockfile-drift.mjs'
- 'yarn.lock'
push:
branches:
- dev
- main
paths:
- '.github/workflows/dependency-lock-drift.yml'
- '.npmrc'
- 'package.json'
- 'package-lock.json'
- 'scripts/check-lockfile-drift.mjs'
- 'yarn.lock'

jobs:
check:
name: Check npm lock matches Yarn lock
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: '24'

- name: Use the lockfile generator version
run: npm install --global [email protected]

- name: Check npm lockfile metadata
run: |
cp yarn.lock "$RUNNER_TEMP/yarn.lock"
npm install --package-lock-only --ignore-scripts
cp "$RUNNER_TEMP/yarn.lock" yarn.lock
git diff --exit-code -- package-lock.json

- name: Check for dependency drift
run: node scripts/check-lockfile-drift.mjs

- name: Verify npm install and build
run: |
npm ci
npm run build
18 changes: 17 additions & 1 deletion .github/workflows/lint_build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,20 @@ on:

jobs:
lint:
uses: revisit-studies/.github/.github/workflows/lint.yaml@main
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn'

- name: Install yarn packages (from cache if available)
run: yarn install --frozen-lockfile

- name: Run linter
run: yarn lint

- name: Build application
run: yarn build
12 changes: 8 additions & 4 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
test:
name: 🧪 ${{ matrix.project }} E2E Tests
runs-on: ${{ matrix.os }}
timeout-minutes: 20
timeout-minutes: 40
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ matrix.cache_dir }}
PW_CI_REPORTER: dot
Expand Down Expand Up @@ -55,9 +55,13 @@ jobs:
path: ${{ matrix.cache_dir }}
key: ${{ runner.os }}-${{ matrix.project }}-pw-${{ hashFiles('**/.playwright-version') }}

- name: Install Playwright Browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: yarn playwright install --with-deps ${{ matrix.project }}
- name: Install Playwright Chromium
if: steps.playwright-cache.outputs.cache-hit != 'true' && matrix.project == 'chromium'
run: yarn playwright install --with-deps --only-shell chromium

- name: Install Playwright WebKit
if: steps.playwright-cache.outputs.cache-hit != 'true' && matrix.project == 'webkit'
run: yarn playwright install webkit

- name: Run Playwright tests
run: yarn test --project=${{ matrix.project }}
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
7 changes: 5 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,17 @@ The study configurations are defined in JSON files with schemas. These configs s
Imported Libraries
We provide several libraries to facilitate the development of user studies, such as vlat, mini-vlat, nasa-tlx, color-blindness, and more. These libraries are components and sequences that are defined in public/libraries/. Each library has its own folder containing the necessary code and assets. Use only libraries that exist under public/libraries/ (no ad-hoc local component imports in study configs). You can import these libraries into your study configs to enhance the functionality and user experience of your studies by adding the libraries to the top level `importedLibraries` field in the study config, and then referencing the components in the `baseComponent` field or in sequences and the sequences in the `sequences` field. When referencing the components and sequences use the following syntax `"$libraryName.components.componentName"` and `"$libraryName.sequences.sequenceName"` respectively.

Large Media Assets
Large bundled-library media should not be committed directly to this repository. Put heavyweight shared library assets in the public `revisit-studies/library-assets` repository, tag the asset release, and reference files from study/library configs with tag-pinned raw GitHub URLs such as `https://raw.githubusercontent.com/revisit-studies/library-assets/v1/...`.

Storage Engines
ReVISit supports multiple storage backends for storing study data, including Firebase and Supabase. This allows researchers to choose the backend that best fits their needs in terms of scalability, ease of use, and integration with other tools. The storage engines are abstracted in the codebase, allowing for easy addition of new storage solutions in the future. The storage engine implementations can be found in src/storage/ directory.

How you should interact with the codebase
When working with the ReVISit codebase, work only with the source code files available to you. If you need an external library, please ask for approval first (and include how well used the library is). Make sure to follow best practices for React and TypeScript development, including proper state management, component structuring, and code documentation. Pay extra attention to lifecycle methods and hooks to ensure optimal performance and avoid memory leaks, including any updates to existing code. If you encounter any issues or have suggestions for improvements, feel free to bring them up for discussion. You can run git commands but don't run them unless asked to. Don't interact with GitHub directly. Always check package.json for the scripts available to you for building, testing, and running the project.
When working with the ReVISit codebase, work only with the source code files available to you. If you need an external library, please ask for approval first (and include how well used the library is). Make sure to follow best practices for React and TypeScript development, including proper state management, component structuring, and code documentation. Pay extra attention to lifecycle methods and hooks to ensure optimal performance and avoid memory leaks, including any updates to existing code. If you encounter any issues or have suggestions for improvements, feel free to bring them up for discussion. You can run git commands but don't run them unless asked to. Always check package.json for the scripts available to you for building, testing, and running the project.

Testing
When adding a new feature or modifying code try to maximize unit test coverage. Unit tests should be colocated with the files they are testing, have the same names as the file with .spec., and use the vitest framework. Apply this to both UI/react code as well as non-UI code. For UI code, we use playwright for end-to-end testing. Try to add e2e tests for any new features that involve user interaction. E2E tests are located in the tests/ directory at the root of the project. Don't run `yarn test` directly; instead, describe the tests you want to run, and I'll handle executing them. You can run unittests locally using `yarn unittest`. Preferred commands are those listed in package.json (e.g., `yarn unittest`, `yarn lint`, `yarn typecheck`, `yarn serve`, `yarn build`).
When adding a new feature or modifying code try to maximize unit test coverage. Unit tests should live in a sibling `tests/` folder near the code they are testing, keep the same base name as the tested file with `.spec.`, and use the vitest framework. For example, `src/store/hooks/useReplay.ts` should be tested in `src/store/hooks/tests/useReplay.spec.tsx`. Root-level app specs should live in `src/tests/`. Apply this to both UI/react code as well as non-UI code. For UI code, we use playwright for end-to-end testing. Try to add e2e tests for any new features that involve user interaction. E2E tests are located in the `tests/` directory at the repo root. Don't run `yarn test` directly; instead, describe the tests you want to run, and I'll handle executing them. You can run unittests locally using `yarn unittest`. Preferred commands are those listed in package.json (e.g., `yarn unittest`, `yarn lint`, `yarn typecheck`, `yarn serve`, `yarn build`).

Parser
When adding new features, sometimes it's required to update the parser and the associated types. The parser is located in src/parser/. The parser is responsible for validating and transforming the study config JSON files into a format that the application can use. When updating the parser, ensure that you also update the corresponding types in src/parser/types.ts to reflect any changes made to the study config schema. Make sure to add unit tests for any new parser functionality to ensure its correctness. Additionally, changes to the parser types will require updates to the generated JSON schema files located in src/schemas/. You can regenerate these schema files by running `yarn generate-schemas`.
Expand Down
Loading
Loading