Skip to content

fix: make installed adapter selection authoritative - #299

Merged
Dimkox merged 1 commit into
mainfrom
feat/adapter-selection-20261102
Nov 2, 2026
Merged

Dimkox merged 1 commit into
mainfrom
feat/adapter-selection-20261102

Conversation

@Dimkox

@Dimkox Dimkox commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Qualification blocker — adapter-selection prerequisite

PR #299 was created and merged by account Dimkox on 2026-11-02 at 13:17:25/35 UTC (16:17 Moscow), before this coordinator completed independent reviews and full local qualification. Its head is e430ec0622b2b1164d4cc75816f1c73d2c9973ff; merge 3310ab7f3d1898e8fbb929b889b80e584dbd23c9 has the identical tree e87e81e05ae045c06079ba64ac02e6772b673f7c.

Independent code review found a blocking AC-007 defect. Generation ignores a valid AGBP_SYNC.json keep declaration. Real lifecycle checks reproduced overwrite after a canonical change, deletion after canonical removal, and creation of a declared-kept absent path. Security review independently confirmed the missing check. Both reviews are FAIL. Passing author tests and the 115-test committed observation do not override this defect.

The repair will make generation honor the existing bounded keep contract before creation, replacement or retirement, validate declared digests, and avoid claiming ownership of preserved custom content. The three lifecycle cases and stale-digest behavior need regressions. Fresh code/security/release reviews, full native PR verification and exact-head CI will follow the repair.

#234 and GZDEV-38 remain open. Shared namespace relocation, adapter removal and native-hook deactivation remain outside this prerequisite. This is not a production-readiness or completion claim.

Problem

Installed adapters were inferred independently by installation, generation, setup and update. An empty choice could become a default adapter. Existing folders could expand the choice. Generic generation and updates lacked one shared record of which files they could replace.

Change

  • Use one strict v2 .getzilla/managed-components.json for complete adapter selection and file ownership. Preserve explicit []. Reject invalid state and require explicit legacy adoption.
  • Derive fresh target state from the delivered payload, including ZIP packaging. Ship the consumer harness entry point. Use the same selected adapters for additions, generation, setup and project update.
  • Serialize cooperating writers with one descriptor-bound guard. Preflight custom files and the Codex configuration/overlay. Publish state last and report partial failure honestly. Retire only unchanged owned generated files.
  • Build updates from a pinned parent in a private Git index. Verify HEAD, branch and actual files before and after checkout. Keep the created update branch when checkout validation fails.
  • Document the adoption path and the remaining limits. Add parser, concurrency, filesystem, ownership, installed CLI and packaging regressions.

Scope

Prerequisite for #234; related to #166 and Jira GZDEV-38. These issues remain open. This change does not complete shared namespace relocation, adapter removal or native-hook deactivation. Empty selection does not disable retained shared Grok hooks. The advisory guard does not provide OS isolation; an I/O failure can leave partial files.

@Dimkox
Dimkox merged commit 3310ab7 into main Nov 2, 2026
5 of 7 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 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-11-02T13:18:28.714153Z e430ec0 PR opened
ℹ️ 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant