Skip to content

DDOS-7952: normalize Pose provenance in do-dd-client - #654

Merged
sg-s merged 5 commits into
mainfrom
ddos-7952-pose-origin-compatibility
Oct 5, 2026
Merged

sg-s merged 5 commits into
mainfrom
ddos-7952-pose-origin-compatibility

Conversation

@sg-s

@sg-s sg-s commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Completes the remaining do-dd-client work for DDOS-7952 after toolbox provenance landed in DDOS-7925.

  • Add normalize_pose_origin() and enforce it on every Pose (__post_init__ / origin setter) so legacy crystal_extract reads as canonical cocrystal while unknown future values pass through.
  • Extend PoseOrigin with manual.
  • Protein Prep _crystal_pose_output_rows() accepts legacy and canonical cocrystal rows before building Pose objects.
  • Pocket provenance (origin, ligand_name, selection_names) was already shipped; no Pocket code changes.

Merge-ready status

Auto-updated — cycle 2, last updated: 2026-10-05T21:35:33Z

Check Status
Branch vs main ✅ synced at bd3f9fa
Head 56a91bd
CI ✅ required green (formatting + Ubuntu 3.12/3.13)
Copilot ✅ reviewed 56a91bd, 0 open threads
Review threads 0 human/Bugbot, 0 Copilot
Label ✅ merge-ready

Recent activity

  • Copilot re-reviewed tip with no new comments.
  • Lessons recorded in docs/agents/merge-ready-lessons.md.
  • Merge-ready loop complete.

Test plan

  • uv run --extra test --extra core --extra tools pytest tests/test_pose.py tests/test_protein_prep.py -q --env local (138 passed)
  • Targeted origin compatibility: pytest ... -k 'origin or crystal_poses_from_output' (10 passed)

Notes

Depends on toolbox contract from DDOS-7925; this PR is client read/compatibility only.

Canonicalize legacy crystal_extract to cocrystal on every Pose instance,
accept both spellings in Protein Prep crystal-pose filtering, extend the
public origin vocabulary with manual, and add compatibility tests/docs.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The implementation is consistent and well tested, with only minor documentation wording to correct.

Review effort: Balanced
Findings: 1 Low severity

Open (1)
What changed in this PR

Normalizes legacy Pose provenance while preserving forward compatibility.

Changes:

  • Maps crystal_extract to cocrystal across Pose creation and assignment.
  • Adds manual provenance and Protein Prep compatibility.
  • Adds tests and provenance documentation.
File Description
src/​drug_discovery/​structures/​pose.py Implements origin normalization.
src/​drug_discovery/​protein_prep.py Accepts legacy cocrystal rows.
tests/​test_pose.py Tests normalization paths.
tests/​test_protein_prep.py Tests Protein Prep compatibility.
docs/​dd/​ref/​pose.md Documents Pose origins.
CONTEXT.md Records provenance terminology.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/dd/ref/pose.md Outdated
Align pose.md with the forward-compat contract so callers do not treat the
known origins as a closed set.
Retigger required Test Python Code checks after a docs-only push that
did not match the workflow path filters.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The implementation consistently enforces the documented provenance contract with appropriate compatibility tests.

Review effort: Balanced
Findings: None

Resolved since last review (1)

@sg-s sg-s added the merge-ready All merge-ready checks passed label Oct 5, 2026
Capture path-filter retrigger, required-check watcher pitfalls, and the
non-exhaustive Pose origin docs nit for future cycles.
docs/agents-only pushes skip Test Python Code path filters; nudge a .py
file so formatting and Ubuntu functionality re-run on the tip.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The implementation consistently normalizes provenance and includes focused compatibility tests and documentation.

Review effort: Balanced
Findings: None

@sg-s
sg-s merged commit 9eebe68 into main Oct 5, 2026
11 of 13 checks passed
@sg-s
sg-s deleted the ddos-7952-pose-origin-compatibility branch October 5, 2026 22:12

This branch had an error being deployed

2 failed and 2 active deployments
prod — 56a91bd1 Deployed Oct 5, 2026 by sg-s via level-1-tests (3.13, prod) #894
staging — 56a91bd1 Deployed Oct 5, 2026 by sg-s via level-1-tests (3.13, staging) #894
dev — 56a91bd1 Deployed Oct 5, 2026 by sg-s via level-1-tests (3.13, dev) #894
docs — 56a91bd1 Deployed Oct 5, 2026 by sg-s via build-docs #847
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-ready All merge-ready checks passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants