Repository navigation
Streamline interview handoff review and continuation - #355
Merged
Merged
Conversation
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.
An imported interview draft currently shows generic confirmation controls and buries its next action. Final review then redirects users through the case-information form just to approve PDFs whose court choices were already resolved. Let users approve the current PDF copies on the handoff page, keep matched details editable behind a disclosure, and put the next action first.
Unmatched court/category/case-type or document filing-type choices now offer Explore replacements outside the accordion and as an entry in its table. For new cases, this focused route reuses the existing code-search service, filters by every saved code and case stage before pagination, and shows only missing fields in each candidate. Explicit selection validates the full path against the live court API, rechecks saved values under a transaction, and fills only blanks. Existing names/codes, other documents, PDFs, people and confidentiality choices are retained. No results, retired choices and network failures leave the draft intact. Party-role and confidentiality questions continue to use their existing editors.
Latest validation: 205 passed, 2 skipped across handoff, code-search and correction tests. Includes conflicting selections, concurrent edits, stage/ownership boundaries, no index, network failure, retired options, preservation of saved answers and code filtering before pagination. Ruff, Ty, template lint, Bandit and migration checks passed. Localhost Chromium exercised real search/validation/update code with a synthetic index and simulated external court responses.
Related to #166; this does not close its live Vermont acceptance criteria. RFA companion: LSVermont/docassemble-RFApackage#437 (stacked on its sender PR #426).
Validation: handoff/review/PDF-preview run: 89 passed; final handoff/correction run: 69 passed, 2 skipped. Ruff, Ty, template lint, Bandit, and migration checks pass. Chromium at 390 × 844 confirms both primary actions are above the fold and the details disclosure works by keyboard. Synthetic screenshots.
Argon and Claude independently reviewed the source flow. Findings, implementation choices, and next proposals are in
docs/developer-notes/issue-166-handoff-ux.md: synchronize interview revisions, verify confidential contact handling in party metadata, shorten the shared sender transition, and align NEXT STEPS instructions. The RFA completion screen was subsequently exercised in actual localhost Docassemble with generated PDFs; full end-to-end court submission remains unverified.Full local pre-push Python run: interrupted after 16m34s waiting in urllib3; 454 tests passed, with no reported failure before interruption. JavaScript unit tests passed. Opening as a draft pending full-suite/CI verification; the focused regression checks above completed successfully.
Full-suite diagnostic rerun with
EFSP_URL=http://127.0.0.1:9: 2,322 passed, 13 skipped, 4 failed in 112.94s. The four failures require live court authentication/profile or case-category responses and received unavailable-service responses, as expected with that deliberately unreachable endpoint. This is not a claim of a clean full integration run. GitHub CI is running with its configured services; the PR remains draft pending those results.Independent code review
Claude and agy/Argon independently reviewed the full PR through
0a10c55. Confirmed findings were fixed inc0de567; both follow-up reports found no remaining blockers. Findings were checked against source and regression tests because some initial report line references were inaccurate.Validation: 205 passed, 2 skipped across handoff, code-search and correction tests. Ruff, Ty, template lint, Bandit, migration checks and JavaScript tests passed. Refreshed localhost screenshots use synthetic court responses; live Vermont filing remains unverified.
Localhost handoff simulation
Show transferred answers in an optional accordion above the PDFs, using two-column tables with bold row labels, consistent padding, and light separators. Interview hints remain separate from saved court choices. Highlight missing choices outside the accordion, including the suggested case type when it could not be matched. The primary action remains above the fold on mobile.
Actual Django pages with synthetic records passed through the normal import and matching services. Simulated court responses include a changed case-type label that no longer matches the interview hint; the ordinary resolver and readiness calculation leave the choice unresolved and block continuation. External court-question lookups are stubbed. No DOM or UI controls were replaced; this is not live court validation. PDFs were not opened in this simulation.
Validation: 70 passed, 2 skipped in handoff/correction tests; after the table layout update, all 44 handoff tests passed again. Template and CSS checks passed. Ruff, Ty, template lint, Bandit and migration checks passed. Chromium checked keyboard opening and primary-action visibility at 390 × 844. All eight screenshots, including desktop, in the unlisted gist.
Matched court choices
Desktop screenshots
Unmatched court choices
Desktop screenshots
Replacement lookup screenshots
Actual localhost simulation; court responses are synthetic. Saved court and category stay fixed while the filer explores missing case and filing types.
Possible replacement
No results: keep the draft
Court unavailable: keep the draft
Replacement applied
Desktop replacement lookup
Actual localhost RFA screenshots
Captured from the PR branch installed in localhost Docassemble, with API-seeded synthetic answers and real generated PDFs. These show the actual AssemblyLine download and email widgets; no controls or styles were replaced. No email was sent or court filing submitted. Both enabled and disabled configurations were exercised. Unlisted screenshot gist.
Online filing enabled
Online filing disabled
Claude simplify pass
Ran Claude’s actual
/simplifyworkflow and reviewed the resulting refactor (2a0dcc4). Shared helpers now handle interview filing hints, lookup eligibility and filing-type flags; source suggestions are fetched in one query, correction updates are batched, and duplicated view work is removed. The four-file Python refactor preserves templates, styles, safeguards and regression tests.Validation: 205 passed, 2 skipped, with Ruff, Ty, Bandit and migration checks passing. The broader suite was interrupted while waiting in external HTTPS/SSL code after 1,076 passes; it is not a clean full-suite result.
Claude /simplify summary.