Skip to content

PTD-23.1.5: Cut over Python interpreter evidence V2 - #152

Merged
omry merged 1 commit into
pr150from
pr151
Sep 15, 2026
Merged

omry merged 1 commit into
pr150from
pr151

Conversation

@omry

@omry omry commented Sep 15, 2026

Copy link
Copy Markdown
Owner

@omry
omry changed the base branch from main to pr150 September 15, 2026 06:29
@omry
omry added this pull request to stack #151 September 15, 2026 06:30
Comment thread internal/dockerdeploy/prepared_python_node_operations.go
@omry

omry commented Sep 15, 2026

Copy link
Copy Markdown
Owner Author

PR-cycle state — maintained automatically. Do not edit by hand.

Mechanical PR-cycle state (JSON)
{
  "approval": {
    "candidate_revision_fingerprint": "sha256:b269083f6778207840c69631fe15cebe8196bcfd653175019e5028bed14d17c1",
    "evidence": {
      "attestations": [
        {
          "baseline_identity": "sha256:58468667dc4b7ccc1b53ece6069a0c768862bc3447a74f838ba9c1edfb6a12c9",
          "closure_identity": "sha256:537f5c75e068affc6132f8d58ca9faf7e6c15260d22cb66d5f5b50eaa255570a",
          "document_identity": "sha256:01b5c3c3907d236c5e62773a80426585be85e44b1d86518411b1efe555a1ca15",
          "sidecar_identity": "sha256:9fbfe15012d98060ea886763bbc0b9f36a6b9991b499fdea4a02aef7d3a6fc3b"
        },
        {
          "baseline_identity": "sha256:d6436371829ec92e56af5bfa51c9de8ca604088f352b2b6322d444cf11f86164",
          "closure_identity": "sha256:537f5c75e068affc6132f8d58ca9faf7e6c15260d22cb66d5f5b50eaa255570a",
          "document_identity": "sha256:740b68117c56cbfa733e0751383b9a0cbb19f8865892c8d989c3c6b36964831f",
          "sidecar_identity": "sha256:a34d2bcede293515398fac29a6778a38d9f08c2f1e9d0b999c1b930ebcda6ae6"
        }
      ],
      "candidate_revision_fingerprint": "sha256:b269083f6778207840c69631fe15cebe8196bcfd653175019e5028bed14d17c1",
      "check_conclusions": [],
      "delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "finding_dispositions_digest": "sha256:e6cc3f074aac44f8bf2cad6b789d295ccdc2365f564c0e2246cdc83bdf1a1eaf",
      "operation_identity": "sha256:c9272c2c3607b704e4302e5053e0dfcdde24b2939d498c99b5763da2ba453cc5",
      "review_request": {
        "body_digest": "sha256:4a71d7c264fe0cdd3c8850e1f14bd2ba88db820014c3b671e8120010a388f143",
        "id": 5677849744
      },
      "review_result": {
        "body_digest": "sha256:0a0d2bace8744a769a10647c407f4e969c00ed607e45edc11dbfc4a1770fd48e",
        "id": 5677913729
      }
    },
    "evidence_fingerprint": "sha256:db11ba7b2a0f85d1c697547ec40933306c552ab9f2f795c6559c39c772fbe848",
    "head_sha": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
    "operation_identity": "sha256:c9272c2c3607b704e4302e5053e0dfcdde24b2939d498c99b5763da2ba453cc5",
    "review_request_id": 5677849744,
    "review_result_id": 5677913729,
    "status": "approved-evidence-recorded"
  },
  "candidate_revision_fingerprint": "sha256:b269083f6778207840c69631fe15cebe8196bcfd653175019e5028bed14d17c1",
  "check_conclusions": [],
  "check_observations": [
    {
      "checks": [],
      "head_sha": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "id": "sha256:307c002a8767b7d87e5c6600f156b920fc18f8c6c5404fb49aea93c66d30ffc5",
      "required_checks": [],
      "status": "success"
    },
    {
      "checks": [],
      "head_sha": "4f60cf990b9e4a13e1707e8a30cf7550f1797dcb",
      "id": "sha256:42486831e431687de4c21b800b417c3d639a600423a292aa688260426aa43d3d",
      "required_checks": [],
      "status": "success"
    }
  ],
  "delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
  "delivery_deferrals": [],
  "findings": [
    {
      "id": 4013670923,
      "review_id": 5207633776,
      "severity": "P2",
      "status": "accepted",
      "summary": "Derive selected Python architecture from interpreter-sensitive evidence rather than platform.machine kernel evidence.",
      "thread_id": "PRRT_kwDOTFQCkM6icKe5",
      "url": "https://github.com/omry/reploy/pull/152#discussion_r4013670923"
    }
  ],
  "pr": {
    "base_ref": "pr150",
    "base_sha": "19375bb8977de5d1495a6f9677e9d012a9f7325c",
    "body_digest": "sha256:63bd137c7aee1365f1def0a05a7d50cf9a530fcd88df40e3b7a34043be9b3ff8",
    "diff_digest": "sha256:7840084319a051548d1ba48f24a36d81dc9494bf350f4d2959c7035521774cfb",
    "head_ref": "pr151",
    "head_sha": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
    "pr": 152,
    "repository": "omry/reploy",
    "scope_authority": [
      {
        "digest": "sha256:bd02f5450b2940b3a960f6419994aa9c4e5e65ccb4dc5365b4d17ac233b49d9d",
        "path": "docs/PORTABLE_TOOL_DEFINITION_DESIGN.md"
      },
      {
        "digest": "sha256:47bb71c994c57aa7e3b5276a68bd5ec880bc0880e961f06544285ddd7e72500a",
        "path": "docs/PORTABLE_TOOL_DEFINITION_IMPLEMENTATION_PLAN.md"
      }
    ],
    "title_digest": "sha256:eb8bc72a46f50da344ffd5bc559aae21a290c9ca0e92873c2a50412119cab125"
  },
  "record_version": 9,
  "review_observations": [],
  "review_requests": [
    {
      "base_established_at": "2026-09-15T06:29:54Z",
      "base_ref": "pr150",
      "base_sha": "19375bb8977de5d1495a6f9677e9d012a9f7325c",
      "body_digest": "sha256:f007b74105884e33a6c577f013b42824ae574d5fb46aeb69da9ebf0671c1b502",
      "created_at": "2026-09-15T08:35:58Z",
      "head_sha": "4f60cf990b9e4a13e1707e8a30cf7550f1797dcb",
      "id": 5677234824,
      "kind": "regular-review"
    },
    {
      "base_established_at": "2026-09-15T06:29:54Z",
      "base_ref": "pr150",
      "base_sha": "19375bb8977de5d1495a6f9677e9d012a9f7325c",
      "body_digest": "sha256:4a71d7c264fe0cdd3c8850e1f14bd2ba88db820014c3b671e8120010a388f143",
      "created_at": "2026-09-15T09:25:06Z",
      "head_sha": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "id": 5677849744,
      "kind": "regular-review"
    }
  ],
  "review_results": [
    {
      "base_ref": "pr150",
      "base_sha": "19375bb8977de5d1495a6f9677e9d012a9f7325c",
      "body_digest": "sha256:d51d28a5d1783d59aa071deb7cbc5afcf129fbca65106b4e5c54ee949bf3d6e6",
      "commit_id": "4f60cf990b9e4a13e1707e8a30cf7550f1797dcb",
      "id": 5207633776,
      "inline_message_ids": [
        4013670923
      ],
      "request_comment_id": 5677234824,
      "result_kind": "findings",
      "status": "result",
      "submitted_at": "2026-09-15T08:40:12Z",
      "unresolved_thread_ids": [
        "PRRT_kwDOTFQCkM6iZnx2",
        "PRRT_kwDOTFQCkM6ia4Cz",
        "PRRT_kwDOTFQCkM6icKe5"
      ]
    },
    {
      "base_ref": "pr150",
      "base_sha": "19375bb8977de5d1495a6f9677e9d012a9f7325c",
      "body_digest": "sha256:0a0d2bace8744a769a10647c407f4e969c00ed607e45edc11dbfc4a1770fd48e",
      "commit_id": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "id": 5677913729,
      "inline_message_ids": [],
      "request_comment_id": 5677849744,
      "result_kind": "clean",
      "status": "result",
      "submitted_at": "2026-09-15T09:30:51Z",
      "unresolved_thread_ids": [
        "PRRT_kwDOTFQCkM6ia4Cz",
        "PRRT_kwDOTFQCkM6icKe5"
      ]
    }
  ],
  "revision_fingerprint": "sha256:b269083f6778207840c69631fe15cebe8196bcfd653175019e5028bed14d17c1",
  "rounds": [
    {
      "applied_fix_paths": [
        "internal/providers/python/interpreter_inspection.go",
        "internal/providers/python/interpreter_inspection_test.go"
      ],
      "disposition_changes": [
        4013670923
      ],
      "effective_diff_digest": "sha256:7840084319a051548d1ba48f24a36d81dc9494bf350f4d2959c7035521774cfb",
      "finding_ids": [
        4013670923
      ],
      "invariants": [
        "The selected Python interpreter architecture must match the target architecture using interpreter-sensitive evidence."
      ],
      "outcome": "corrected-head-needs-review",
      "proposed_fix_paths": [
        "internal/providers/python/interpreter_inspection.go",
        "internal/providers/python/interpreter_inspection_test.go"
      ],
      "resulting_head": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "review_observation_id": null,
      "review_request_id": 5677234824,
      "review_result_id": 5207633776,
      "reviewed_head": "4f60cf990b9e4a13e1707e8a30cf7550f1797dcb",
      "root_cause": "The probe used platform.machine(), which describes the kernel rather than the selected interpreter's wheel-platform architecture.",
      "round": 1,
      "unresolved_current_slice_findings": 0,
      "unresolved_design_blockers": 0
    },
    {
      "applied_fix_paths": [],
      "disposition_changes": [],
      "effective_diff_digest": "sha256:7840084319a051548d1ba48f24a36d81dc9494bf350f4d2959c7035521774cfb",
      "finding_ids": [],
      "invariants": [
        "The PTD-23.1.5 implementation remains within its approved projection and interpreter-evidence boundary.",
        "Interpreter version, implementation, ABI, libc, architecture, and compatible wheel tags are derived consistently for fresh and cached resolver paths."
      ],
      "outcome": "clean",
      "proposed_fix_paths": [],
      "resulting_head": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "review_observation_id": null,
      "review_request_id": 5677849744,
      "review_result_id": 5677913729,
      "reviewed_head": "c2d1f55a7f1fccdf5f55ef0c693d234a4d7b939e",
      "root_cause": null,
      "round": 2,
      "unresolved_current_slice_findings": 0,
      "unresolved_design_blockers": 0
    }
  ],
  "schema": "awd:swe:pr-cycle-state",
  "version": 2
}

@omry
omry marked this pull request as ready for review September 15, 2026 07:33
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-15T09:30:53.347940Z c2d1f55 Manual request
🔒 Security Review Completed 2026-09-15T07:43:33.271898Z 07fe4b5 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 07fe4b554d

ℹ️ 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".

Comment thread internal/dockerdeploy/prepared_python_graph_execution.go
@omry

omry commented Sep 15, 2026

Copy link
Copy Markdown
Owner Author

@codex, regular review 4f60cf9

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4f60cf990b

ℹ️ 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".

Comment thread internal/providers/python/interpreter_inspection.go Outdated
Project exact interpreter version, implementation, ABI, libc, architecture, and runtime wheel tags through fresh and cached Python resolver paths.

Use a shared isolated Python/pip command prefix and cut dependent profile, recipe, materialization, and source-build identities to V2.
@gitar-bot

gitar-bot Bot commented Sep 15, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 1 resolved / 1 findings

Migrates Python interpreter evidence collection to V2, projecting exact interpreter version, implementation, ABI, libc, architecture, and runtime wheel tags through fresh and cached resolver paths. Source-builder interpreter selection now respects projected tested tags. No issues found.

✅ 1 resolved
Quality: Source-builder interpreter selection ignores projected tested tags

📄 internal/dockerdeploy/prepared_python_node_operations.go:454 📄 internal/dockerdeploy/prepared_python_node_operations.go:507-509 📄 internal/dockerdeploy/prepared_python_node_operations.go:182-186
resolveFresh and validateCached now select the node interpreter through SelectPythonInterpreterWithTags using operations.PortableToolBindings.TestedTags, but the source-build path (selectPythonSourceBuilderInterpreterV1, aliased to the tag-less SelectPythonInterpreter) still selects with empty tested tags, so the source-builder interpreter records empty compatible_tags. This appears internally consistent (the same empty facts feed SourceBuildEnvironmentDigest, so nothing crashes) and may be intentional since the builder image is not the runtime target, but the divergence is easy to misread. If the source-builder interpreter's compatibility facts are meant to mirror the node projection, pass the projected tested tags here too; otherwise a brief comment explaining why the source builder deliberately omits them would prevent future confusion.

Review coverage

Rules No rules evaluated

Functional validation Not enabled · Set up

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@omry

omry commented Sep 15, 2026

Copy link
Copy Markdown
Owner Author

@codex, regular review c2d1f55

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: c2d1f55a7f

ℹ️ 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".

@omry omry added the approved PR reviewed and approved label Sep 15, 2026
@omry
omry merged commit d5feac7 into main Sep 15, 2026
8 checks passed
@omry
omry deleted the pr151 branch September 15, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved PR reviewed and approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant