fix(container-image): add missing upgradeAttributes to upgrade entry #232

Merged
stack72 merged 2 commits from fix/1817-container-image-upgrade-attributes into main 2026-08-25 16:00:05 +00:00
Owner

Summary

  • Add the missing upgradeAttributes field to the 2026.08.25.1 upgrade entry in container_image.ts — a no-op (old) => old since the upgrade only added optional method inputs (privileged, extraArgs), no model attributes changed
  • The field is required by the schema validator; its absence made @swamp/container-image@2026.08.25.1 completely uninstallable (upgrades.0.upgradeAttributes: Invalid input)
  • Filed #1822 separately for Defect 2 (swamp doctor bundle cache staleness) reported in the same issue

Test plan

  • deno check passes
  • deno lint passes
  • deno fmt --check passes
  • All 85 tests pass (37 runner, 19 schema, 29 operation)
  • deno install --frozen passes (lockfile consistent)

Closes #1817

🤖 Generated with Claude Code

## Summary - Add the missing `upgradeAttributes` field to the `2026.08.25.1` upgrade entry in `container_image.ts` — a no-op `(old) => old` since the upgrade only added optional method inputs (`privileged`, `extraArgs`), no model attributes changed - The field is required by the schema validator; its absence made `@swamp/container-image@2026.08.25.1` completely uninstallable (`upgrades.0.upgradeAttributes: Invalid input`) - Filed #1822 separately for Defect 2 (swamp doctor bundle cache staleness) reported in the same issue ## Test plan - [x] `deno check` passes - [x] `deno lint` passes - [x] `deno fmt --check` passes - [x] All 85 tests pass (37 runner, 19 schema, 29 operation) - [x] `deno install --frozen` passes (lockfile consistent) Closes #1817 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(container-image): add missing upgradeAttributes to upgrade entry (#1817)
All checks were successful
CI: Extensions / cve/researcher - fmt (pull_request) Has been skipped
CI: Extensions / cve/researcher - lint (pull_request) Has been skipped
CI: Extensions / cve/researcher - test (pull_request) Has been skipped
CI: Extensions / cve/dirtyfrag - lockfile up to date (pull_request) Has been skipped
CI: Extensions / cve/mini-shai-hulud - lockfile up to date (pull_request) Has been skipped
CI: Extensions / cve/researcher - lockfile up to date (pull_request) Has been skipped
CI: Extensions / software-factory - check (pull_request) Has been skipped
CI: Extensions / software-factory - fmt (pull_request) Has been skipped
CI: Extensions / software-factory - lint (pull_request) Has been skipped
CI: Extensions / software-factory - test (pull_request) Has been skipped
CI: Extensions / software-factory - lockfile up to date (pull_request) Has been skipped
CI: Extensions / git - check (pull_request) Has been skipped
CI: Extensions / git - fmt (pull_request) Has been skipped
CI: Extensions / git - lint (pull_request) Has been skipped
CI: Extensions / git - test (pull_request) Has been skipped
CI: Extensions / git - lockfile up to date (pull_request) Has been skipped
CI: Reviews / Detect Changes (pull_request) Successful in 18s
CI: Reviews / CI Security Review (pull_request) Has been skipped
CI: Extensions / container-image - check (pull_request) Successful in 43s
CI / Actions Audit (pull_request) Successful in 53s
CI: Extensions / container-image - lint (pull_request) Successful in 22s
CI: Extensions / container-image - fmt (pull_request) Successful in 40s
CI: Extensions / container-image - test (pull_request) Successful in 27s
CI: Extensions / container-image - lockfile up to date (pull_request) Successful in 26s
CI: Reviews / Claude Code Review (pull_request) Successful in 43s
CI: Extensions / Gate: Extensions (pull_request) Successful in 0s
CI / Dependency Audit (pull_request) Successful in 3m46s
CI / Gate: Audit (pull_request) Successful in 0s
CI: Reviews / Adversarial Code Review (pull_request) Successful in 1m39s
CI: Reviews / Gate: Reviews (pull_request) Successful in 0s
e6cb0229e3
The upgrade entry for version 2026.08.25.1 was missing the required
upgradeAttributes field, causing schema validation to fail and making
the extension completely uninstallable. The upgrade only added optional
method inputs (privileged, extraArgs) so the attribute transform is a
no-op.

Also filed #1822 for the separate swamp doctor bundle cache staleness
defect reported in the same issue.

Closes #1817

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

Code Review

Blocking Issues

None.

Suggestions

None.


The change adds the missing upgradeAttributes identity function to the 2026.08.25.1 upgrade entry in container-image/extensions/models/container_image.ts. The fix is correct and minimal:

  • (old: Record<string, unknown>) => old is the appropriate pass-through for a non-breaking upgrade where no attribute migration is needed.
  • No any types; Record<string, unknown> is properly typed.
  • The file is hand-written (not under model/), so the no-hand-edit rule does not apply.
  • Named export is maintained (export const model).
  • No security, correctness, or testing concerns introduced by this one-line change.
## Code Review ### Blocking Issues None. ### Suggestions None. --- The change adds the missing `upgradeAttributes` identity function to the `2026.08.25.1` upgrade entry in `container-image/extensions/models/container_image.ts`. The fix is correct and minimal: - `(old: Record<string, unknown>) => old` is the appropriate pass-through for a non-breaking upgrade where no attribute migration is needed. - No `any` types; `Record<string, unknown>` is properly typed. - The file is hand-written (not under `model/`), so the no-hand-edit rule does not apply. - Named export is maintained (`export const model`). - No security, correctness, or testing concerns introduced by this one-line change.
Author
Owner

Adversarial Review

Critical / High

None.

Medium

None.

Low

None.

Verdict

PASS — The PR adds a single missing upgradeAttributes property to the upgrade entry at container-image/extensions/models/container_image.ts:79. The identity function (old) => old is the correct pass-through for upgrades that add optional fields with no attribute migration needed (matching the established pattern used across cve/mini-shai-hulud, cve/researcher, and all generated models). The fix is minimal and correct.

## Adversarial Review ### Critical / High None. ### Medium None. ### Low None. ### Verdict **PASS** — The PR adds a single missing `upgradeAttributes` property to the upgrade entry at `container-image/extensions/models/container_image.ts:79`. The identity function `(old) => old` is the correct pass-through for upgrades that add optional fields with no attribute migration needed (matching the established pattern used across `cve/mini-shai-hulud`, `cve/researcher`, and all generated models). The fix is minimal and correct.
fix(container-image): bump to 2026.08.25.2 with corrected upgrade chain
All checks were successful
CI: Extensions / cve/researcher - fmt (pull_request) Has been skipped
CI: Extensions / cve/researcher - lint (pull_request) Has been skipped
CI: Extensions / cve/researcher - test (pull_request) Has been skipped
CI: Extensions / cve/dirtyfrag - lockfile up to date (pull_request) Has been skipped
CI: Extensions / cve/mini-shai-hulud - lockfile up to date (pull_request) Has been skipped
CI: Extensions / cve/researcher - lockfile up to date (pull_request) Has been skipped
CI: Extensions / software-factory - check (pull_request) Has been skipped
CI: Extensions / software-factory - fmt (pull_request) Has been skipped
CI: Extensions / software-factory - lint (pull_request) Has been skipped
CI: Extensions / software-factory - test (pull_request) Has been skipped
CI: Extensions / software-factory - lockfile up to date (pull_request) Has been skipped
CI: Extensions / git - check (pull_request) Has been skipped
CI: Extensions / git - fmt (pull_request) Has been skipped
CI: Extensions / git - lint (pull_request) Has been skipped
CI: Extensions / git - test (pull_request) Has been skipped
CI: Extensions / git - lockfile up to date (pull_request) Has been skipped
CI: Reviews / Detect Changes (pull_request) Successful in 22s
CI: Reviews / CI Security Review (pull_request) Has been skipped
CI / Actions Audit (pull_request) Successful in 28s
CI: Extensions / container-image - check (pull_request) Successful in 22s
CI: Extensions / container-image - fmt (pull_request) Successful in 23s
CI: Extensions / container-image - lint (pull_request) Successful in 30s
CI / Dependency Audit (pull_request) Successful in 2m46s
CI: Extensions / container-image - test (pull_request) Successful in 22s
CI: Extensions / container-image - lockfile up to date (pull_request) Successful in 31s
CI: Reviews / Claude Code Review (pull_request) Successful in 1m6s
CI / Gate: Audit (pull_request) Successful in 0s
CI: Extensions / Gate: Extensions (pull_request) Successful in 0s
CI: Reviews / Adversarial Code Review (pull_request) Successful in 1m28s
CI: Reviews / Gate: Reviews (pull_request) Successful in 0s
287481be2b
Version bump so the fix can be published as a new release. Adds a
second upgrade entry (2026.08.25.2) for the installation fix itself.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

Code Review

Blocking Issues

None.

Suggestions

None.


This is a clean, minimal fix. The PR adds the missing upgradeAttributes identity function to the 2026.08.25.1 upgrade entry (the root cause of the installation failure) and bumps to 2026.08.25.2 with its own identity upgrade entry. The version is consistent between container_image.ts and manifest.yaml. No hand-edited generated files, no type issues, no security concerns.

## Code Review ### Blocking Issues None. ### Suggestions None. --- This is a clean, minimal fix. The PR adds the missing `upgradeAttributes` identity function to the `2026.08.25.1` upgrade entry (the root cause of the installation failure) and bumps to `2026.08.25.2` with its own identity upgrade entry. The version is consistent between `container_image.ts` and `manifest.yaml`. No hand-edited generated files, no type issues, no security concerns.
Author
Owner

Adversarial Review

Critical / High

No critical or high severity issues found.

Medium

No medium severity issues found.

Low

No low severity issues found.

Verdict

PASS — Minimal, correct fix. The PR adds the missing upgradeAttributes identity callback to the 2026.08.25.1 upgrade entry (which was causing installation failures), adds a new 2026.08.25.2 upgrade entry documenting the fix, and bumps the version consistently in both container_image.ts:72 and manifest.yaml:3. The identity function (old) => old is the correct transform for upgrades that don't alter the attribute schema. Version strings are consistent across both files. The upgrade chain is ordered correctly. Nothing to flag.

## Adversarial Review ### Critical / High No critical or high severity issues found. ### Medium No medium severity issues found. ### Low No low severity issues found. ### Verdict **PASS** — Minimal, correct fix. The PR adds the missing `upgradeAttributes` identity callback to the `2026.08.25.1` upgrade entry (which was causing installation failures), adds a new `2026.08.25.2` upgrade entry documenting the fix, and bumps the version consistently in both `container_image.ts:72` and `manifest.yaml:3`. The identity function `(old) => old` is the correct transform for upgrades that don't alter the attribute schema. Version strings are consistent across both files. The upgrade chain is ordered correctly. Nothing to flag.
stack72 deleted branch fix/1817-container-image-upgrade-attributes 2026-08-25 16:00:05 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
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
swamp-club/swamp-extensions!232
No description provided.