Repository navigation
Conversation
The only position feedback a series gave was an "Instruments Completed" counter on the interstitial screen, which never appears while a form is showing and never appears at all for a skipProgress series. Replace it with a bar above every item, filled by the items completed and labelled with the item in progress. It starts at a resumed assignment's position and stays mounted between items so it animates each advance. Closes DouglasNeuroInformatics#1849 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
run.sh copied a template database only onto an empty volume, so a deployed gateway never received a schema change made after it was first started. Install the Prisma CLI the lockfile resolved into the runner image and have run.sh run `prisma db push` before the server: it creates the database on an empty volume, brings an existing one up to date, and stops the container rather than drop data. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ent is completed A remote assignment ended on a static completion screen, leaving a subject who arrived from a study portal or clinic page no way back. An assignment can now carry an optional https redirect URL, set when it is created in the single-assignment dialog, the bulk wizard or the API (one URL per bulk request). The gateway stores it and, once the completing submission is recorded, shows a five-second countdown under the completion screen before replacing the page with that URL. The URL is validated once, when the assignment is created, and is normalized to ASCII so it survives the gateway's latin1-only page props. Closes DouglasNeuroInformatics#1862 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5fa1391 retitled "Don't show again" to "Don't Show Again" without updating its tests. One then failed to find the button, and the one asserting the button is hidden on the last step passed without checking anything, since no button ever had the old name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1849. Closes #1862.
Series progress bar (#1849)
SeriesInstrumentRenderernow shows a bar labelled "Instrument N of M" above every item. It appears on the form screen as well as the interstitial, so askipProgressseries shows progress too; both built-in series areskipProgress, so they previously showed none. It starts at a resumed assignment'sinitialSeriesIndex, and it stays mounted between items so it animates each advance. It replaces the old "Instruments Completed" text and is always on, with no new params flag.Redirect after a remote assignment is completed (#1862)
redirectUrl. It can be set in the single-assignment dialog, once per request in the bulk wizard, or throughPOST /v1/assignmentsand/bulk.$AssignmentRedirectUrlaccepts onlyhttps://URLs of up to 2000 characters. It normalizes them to ASCII, because the gateway's root props go throughbtoa.Must start with "https://"message.location.replace. A completing PATCH means a scalar submit, the last series item, orterminate(). react-core is untouched.build(gateway)commit: the gateway image now runsprisma db pushon every start. Previouslyrun.shcopied a template database only onto an empty volume, so an existing deployment would never have received the new column. Additive changes now apply themselves, and a change that would lose data stops the container.apps/gateway/AGENTS.mddocuments the rule.Also
test(web)commit: fixesWalkthroughProvider.test.tsx, broken onmainsince5fa1391a2retitled the dismiss button. Its "hidden on the last step" assertion had been passing without checking anything.Verification
pnpm lintpasses.pnpm test:coveragepasses at 100% on all four metrics.SeriesProgressBar.test.tsxandSeriesInstrumentRenderer.test.tsxassignment.test.ts(schemas)assignments.service.test.ts, plus the API integration suite05-assignment-redirect.suite.tsCompletionRedirect.test.tsx,Root.test.tsx,root.router.test.tsandapi.router.test.tsvalidation.test.ts,remote-assignment.test.tsx,TimepointsStep.test.tsx,ReviewStep.test.tsxanduseBulkAssignmentWizard.test.tspnpm test:e2epasses.429, 50 logins a minute).--workers=1re-run, which is how CI runs the suite.series-instrument.spec.tsgateway-assignment.spec.ts: the subject is redirected after completionremote-assignment.spec.ts: the dialog rejectshttp://remote-assignments-wizard.spec.ts: the wizard holds back reviewbulk-remote-assignments.spec.ts: the API applies the URL to each assignment in a batchredirectUrl, and/returns 200.main's schema, holding an outstanding row: it adds the column on start, and the row survives with anullredirectUrl.GET /api/assignmentsstill returns that row.POST /api/assignmentswithhttps://exämple.com/donestoreshttps://xn--exmple-cua.com/done. The assignment page renders with it in its root props. Anhttp://redirect gets a 400, and nothing is written.db pushrefuses, the container exits 1, and the data is untouched.Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com