CodeSnuffler Forgejo End-to-End historical review range codesnuffler-forgejo-live-20260629T134014979Z-a2a9d5da-580 #45

Closed
jason-admin wants to merge 2 commits from change_forgejo_end_to_end into base_forgejo_end_to_end
Owner

Exercise the live Forgejo webhook review pipeline against a stable historical CodeSnuffler diff.

Run marker: codesnuffler-forgejo-live-20260629T134014979Z-a2a9d5da-580.
Run started at: 2026-06-29T13:40:14.979Z.

Fixture range: f9d210eccd0075b6b39b606cea9b1376719aa062..d8a3fc420b055e04df1d203706b89b1f1261a9c1.
This two-commit AI Harness range stops before 404b386c removed stale persona and old-shape compatibility, so the review is expected to produce actionable findings.

Exercise the live Forgejo webhook review pipeline against a stable historical CodeSnuffler diff. Run marker: codesnuffler-forgejo-live-20260629T134014979Z-a2a9d5da-580. Run started at: 2026-06-29T13:40:14.979Z. Fixture range: f9d210eccd0075b6b39b606cea9b1376719aa062..d8a3fc420b055e04df1d203706b89b1f1261a9c1. This two-commit AI Harness range stops before 404b386c removed stale persona and old-shape compatibility, so the review is expected to produce actionable findings.
This completes Step 12 of the AI harness plugin-instance plan by replacing the tool auth container session contract's persona field with explicit plugin instance identity. Controller request and response schemas, auth image refs, build payloads, dev-shell websocket forwarding, Docker labels, container env, and shared probe metadata now carry plugin_id, instance_id, and driver_id.

The controller now rejects mismatched plugin or driver identity, uses PLUGIN_INSTANCE_ID instead of TOOL_PERSONA_ID in auth containers, and labels containers/images with current plugin and driver keys. The app-side auth container client and session helpers send the new payload shape without accepting the old persona_id request field.

Validated with: pytest for the container image controller client, AI tool auth containers, and container image controller integration files; compileall for touched controller/app/contract/test modules; git diff --check; targeted cleanup search for removed tool-auth persona fields, env vars, labels, and probe keys in the edited boundary.
Update the AI harness runtime/status layer to project current plugin instance identity through auth runtime summaries, raw probe normalization, storage inventory, setup details, generic auth helpers, and system report rows. Runtime/status models now carry plugin_id, instance_id, and driver_id without a persona_id field, while later runner and review-policy persona cleanup remains explicitly scoped to follow-up plan steps.

Validated with: pytest for the AI tool instance suite, focused homepage runtime/status cases, the configured harness plugin catalog case, AI tool schema unit tests, compileall for the touched backend/test modules, git diff --check, and targeted persona cleanup searches.
Author
Owner

CodeSnuffler review banner

CodeSnuffler Review Findings

Recommendation Risk Open findings Files touched by findings
Request Changes Medium 2 2

Findings

1. Remove remaining persona_id compatibility property

Severity Category Confidence Location Status
Medium Maintainability 90% app/ai_tools/instances.py:226-227 Open

AiToolInstanceConfig.persona_id remains as an alias for instance_id, and runtime code still reads it. The PR is standardizing the auth identity shape, so this alias is a compatibility shim under AGENTS.md. Remove the property and update remaining AI-tool call sites to use config.instance_id directly, then re-run the removed-name search to ensure remaining hits are only negative tests or unrelated non-AI-tool personas.

Open finding in CodeSnuffler

Generate patch with CodeSnuffler

Suggested fix: Delete the persona_id property and replace AI tool usages such as config.persona_id in runner workspace/storage deletion paths with config.instance_id.

2. AI review policy still exposes old persona_id field

Severity Category Confidence Location Status
Medium Correctness 86% app/settings/ai_review_policy/schemas.py:72-77 Open

The configured AI review policy response schema still returns persona_id for AI tool instance choices even though this PR removes persona_id from the AI tool instance/auth contract. That leaves a public old-shape field in a schema-adjacent API and can keep frontend or automation callers coupled to the removed name.

Open finding in CodeSnuffler

Generate patch with CodeSnuffler

Suggested fix: Rename this response field to instance_id, update the service projection that currently assigns persona_id=instance.instance_id, and update callers/tests to consume instance_id only.

![CodeSnuffler review banner](https://ops.codesnuffler.com/codesnuffler_review/assets/banner_mediumIssues) ## CodeSnuffler Review Findings | Recommendation | Risk | Open findings | Files touched by findings | | --- | --- | ---: | ---: | | Request Changes | Medium | 2 | 2 | ### Findings #### 1. Remove remaining persona_id compatibility property | Severity | Category | Confidence | Location | Status | | --- | --- | ---: | --- | --- | | Medium | Maintainability | 90% | `app/ai_tools/instances.py:226-227` | Open | `AiToolInstanceConfig.persona_id` remains as an alias for `instance_id`, and runtime code still reads it. The PR is standardizing the auth identity shape, so this alias is a compatibility shim under AGENTS.md. Remove the property and update remaining AI-tool call sites to use `config.instance_id` directly, then re-run the removed-name search to ensure remaining hits are only negative tests or unrelated non-AI-tool personas. [Open finding in CodeSnuffler](https://ops.codesnuffler.com/codesnuffler_review/forgejo-jason-admin-CodeSnuffler-FJ-pr-45/findings/5) [Generate patch with CodeSnuffler](https://ops.codesnuffler.com/codesnuffler_review/forgejo-jason-admin-CodeSnuffler-FJ-pr-45/findings/5/fix) **Suggested fix:** Delete the `persona_id` property and replace AI tool usages such as `config.persona_id` in runner workspace/storage deletion paths with `config.instance_id`. #### 2. AI review policy still exposes old persona_id field | Severity | Category | Confidence | Location | Status | | --- | --- | ---: | --- | --- | | Medium | Correctness | 86% | `app/settings/ai_review_policy/schemas.py:72-77` | Open | The configured AI review policy response schema still returns `persona_id` for AI tool instance choices even though this PR removes `persona_id` from the AI tool instance/auth contract. That leaves a public old-shape field in a schema-adjacent API and can keep frontend or automation callers coupled to the removed name. [Open finding in CodeSnuffler](https://ops.codesnuffler.com/codesnuffler_review/forgejo-jason-admin-CodeSnuffler-FJ-pr-45/findings/6) [Generate patch with CodeSnuffler](https://ops.codesnuffler.com/codesnuffler_review/forgejo-jason-admin-CodeSnuffler-FJ-pr-45/findings/6/fix) **Suggested fix:** Rename this response field to `instance_id`, update the service projection that currently assigns `persona_id=instance.instance_id`, and update callers/tests to consume `instance_id` only.
Author
Owner

CodeSnuffler Review Underway

Status: Review in progress

CodeSnuffler has started reviewing this pull request.

Field Value
Started at 2026-06-29T13:41:10.542745+00:00
Review ID forgejo-jason-admin-CodeSnuffler-FJ-pr-45
Review details Open review details
## CodeSnuffler Review Underway > **Status:** Review in progress > > CodeSnuffler has started reviewing this pull request. | Field | Value | | --- | --- | | Started at | `2026-06-29T13:41:10.542745+00:00` | | Review ID | `forgejo-jason-admin-CodeSnuffler-FJ-pr-45` | | Review details | [Open review details](https://frontend.codesnuffler.com/codesnuffler_review/forgejo-jason-admin-CodeSnuffler-FJ-pr-45) |
jason-admin closed this pull request 2026-06-29 13:55:23 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jason-admin/CodeSnuffler-FJ!45
No description provided.