feat(responses): let organizers correct submitted text - #85
Merged
Conversation
Summary: - edit text answers on closed, unarchived responses behind a danger dialog - retain organizer-attributed old and new values in visible edit history - reject stale or invalid updates and mark generated books stale Rationale: - organizers need a safe way to correct contributor typos without hiding changes to submitted content - append-only history and optimistic revisions keep corrections accountable when multiple organizers share the workspace Tests: - direnv exec . env SAKEKEEP_E2E_PORT=3020 bun run verify - manual local browser check with matched screenshots Related to #81 AI-Assisted: true AI-Agent: codex AI-Model: openai/gpt-5.6-sol
patriksimms
commented
Aug 24, 2026
patriksimms
commented
Aug 24, 2026
Pin the response revision and original text answers when an organizer starts editing so a refresh cannot silently adopt a newer revision. Label blank values in the audit trail so additions and removals remain understandable. Tests: bun run lint Tests: bun run typecheck Tests: bun run test -- src/components/submissions-panel.test.tsx src/server/repository.integration.test.ts Related to #81 AI-Assisted: true AI-Agent: codex AI-Model: openai/gpt-5.6-sol
End only stale edit sessions after a revision conflict so organizers can refresh and begin again without repeatedly submitting the obsolete revision. Keep drafts intact for unrelated save failures. Tests: bun run lint Tests: bun run typecheck Tests: bun run test -- src/components/submissions-panel.test.tsx src/server/repository.integration.test.ts Related to #81 AI-Assisted: true AI-Agent: codex AI-Model: openai/gpt-5.6-sol
patriksimms
marked this pull request as ready for review
August 24, 2026 20:15
Merge the latest main branch into the response editing work. Load response edit history and photo focal points together, update the new photo-focus test fixtures for response revisions, and regenerate the response-edit migration after the photo-focus migration. Tests: bun run verify Tests: fresh local migration chain through db:migrate Related to #81 AI-Assisted: true AI-Agent: codex AI-Model: openai/gpt-5.6-sol
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.
Problem
Organizers cannot correct a typo after a contributor submits a response. The only available copy remains read-only, even after collection closes.
Solution
Closed, unarchived projects now let any signed-in organizer edit text answers for one response. Each save requires a danger confirmation, keeps the original and replacement values with the organizer identity and timestamp, and marks a generated book stale. Choice and image answers remain read-only.
Optimistic response revisions reject concurrent edits instead of silently overwriting another organizer’s correction.
Validation
direnv exec . env SAKEKEEP_E2E_PORT=3020 bun run verifyVisual evidence
Before: submitted responses are read-only
After: explicit danger confirmation
After: corrected response with visible history
Closes #81
Implemented with Codex in T3 Code using
openai/gpt-5.6-sol.