Repository navigation
fix(server): Preserve supplied answers across exercise layouts - #458
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8c7d879a02
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Retain explicitly scoped composite-child answers, verify complete option contents and item identities, and reject fields borrowed from later questions. Co-authored-by: Codex <codex@openai.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4f0a85e59f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Verify leading and trailing passage boundaries and extend parent scopes only over complete child clauses with matching numbered blanks. Preserve existing numbered-bank continuations in text and OCR imports. Co-authored-by: Codex <codex@openai.com>
Resolve CVE-2026-118667 reported by the locked-dependency audit. Regenerate the lock with the CI-pinned uv without changing other packages. Co-authored-by: Codex <codex@openai.com>
Summary
Final import merge could discard supplied translation or composite answers and retain unverified answers when option text, passage context or item identities changed. Preserve supplied fields through verified prompts/material, complete parent passages, unique blank numbers and scoped local or printed answer keys while retaining questions and review flags.
Numbered composite children keep their own source proofs. Parent scopes extend only over complete child clauses whose printed record and blank numbers match. Complete option contents and leading/trailing passage context must match; neighboring stem prefixes cannot supply answers. Printed item labels govern both JSON and plain-text ordering/matching answers, including implicit or positional IDs. All 21 existing text evaluation sources retain their supplied answers.
Patch the existing langgraph-sdk dependency to 0.4.6 for CVE-2026-118667, which blocked dependency audit on both CI Python versions.
AI assistance: Codex reproduced the six review findings, repaired the shared source proofs, checked direct callers and added regression cases. Validation uses provider/model substitutes and disposable PostgreSQL/RabbitMQ, without paid model calls.
Linked issue
Follow-up to merged #454, including the translation/composite review findings. N/A for a separate issue: this is a focused bug fix permitted by CONTRIBUTING.md.
Affected areas
AI-service answer provenance, its regression tests and evaluation documentation. Changes cover the source-proof helper, regression tests, evaluation documentation and service lockfile. Existing shared result contracts and null/review fields are reused.
Validation
Choose relevant checks from CONTRIBUTING.md.
PYTHONPATH=$PWD/server/src make verify AI_PYTHON=/Users/sheny/.local/share/uv/python/cpython-3.14-macos-aarch64-none/bin/python3.14ec2c2476: 3,398 tests, 94% total coverage; lock consistency, Ruff, Pyright, 30 evaluation fixtures, recovery probes, sdist/wheel build and package integrity.make install-locked;make audit AI_PYTHON=/Users/sheny/.local/share/uv/python/cpython-3.14-macos-aarch64-none/bin/python3.14git diff --checkec2c2476. Previous Python 3.14/3.15 CI failed on the SDK 0.4.4 vulnerability audit; current local audit and complete verification pass with 0.4.6.Risk and rollout
Checklist