Skip to content

fix: remove unsupported GHCR visibility mutation - #85

Merged
bradtaylorsf merged 1 commit into
masterfrom
fix/GH-78-ghcr-visibility-workflow
Aug 18, 2026
Merged

bradtaylorsf merged 1 commit into
masterfrom
fix/GH-78-ghcr-visibility-workflow

Conversation

@bradtaylorsf

Copy link
Copy Markdown
Contributor

Summary

  • remove the unsupported GHCR package visibility PATCH from the runtime-image workflow
  • preserve multi-platform publication, digest verification, SBOM/provenance, and immutable-reference artifact
  • document the supported owner-controlled package settings step and credential-free verification
  • add a regression assertion preventing the mutation from returning

Closes #78

Verification

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78

✓ tests/repository/release-assets.test.ts (7 tests) 3288ms
✓ immutable installer release assets > generates the verified macos Node proposal without mutation 737ms
✓ immutable installer release assets > generates the verified windows-wsl2 Node proposal without mutation 643ms
✓ immutable installer release assets > leaves the user home unchanged when dependency consent is refused 437ms
✓ immutable installer release assets > reuses a compatible installed Node dependency without mutation 448ms
✓ immutable installer release assets > reuses a managed Node dependency after an interrupted bootstrap 1002ms

Test Files 1 passed (1)
Tests 7 passed (7)
Start at 19:14:17
Duration 3.74s (transform 54ms, setup 0ms, collect 49ms, tests 3.29s, environment 0ms, prepare 123ms) — 7 passed

@answer-engine/server@1.1.0 verify /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
pnpm boundary:check && pnpm lint && pnpm type-check && pnpm test && pnpm --filter @answer-engine/cli test && pnpm --filter @answer-engine/mcp-server test && pnpm --filter @answer-engine/create test && pnpm --filter @answer-engine/web-ui test && pnpm build && pnpm --filter @answer-engine/cli build && pnpm --filter @answer-engine/mcp-server build && pnpm --filter @answer-engine/create build && pnpm --filter @answer-engine/web-ui build && pnpm --filter @answer-engine/desktop lint && pnpm --filter @answer-engine/desktop type-check && pnpm --filter @answer-engine/desktop test && pnpm --filter @answer-engine/desktop build

@answer-engine/server@1.1.0 boundary:check /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
tsx scripts/check-public-boundary.ts

Public-boundary check passed.

@answer-engine/server@1.1.0 lint /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
eslint src/**/*.ts

@answer-engine/server@1.1.0 type-check /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
tsc --noEmit

@answer-engine/server@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78

✓ tests/server/local-blob-storage.test.ts (1 test) 14ms
✓ tests/server/openapi-boundary.test.ts (1 test) 44ms
✓ tests/repository/dependency-security.test.ts (3 tests) 130ms
✓ tests/server/request-surface.test.ts (3 tests) 26ms
✓ tests/server/agent-routes.test.ts (1 test) 24ms
✓ tests/server/api-key-auth.test.ts (2 tests) 21ms
✓ tests/server/local-ui-session.test.ts (4 tests) 28ms
✓ tests/server/folder-ingestion-routes.test.ts (3 tests) 35ms
✓ tests/server/recall-tutorial-routes.test.ts (3 tests) 34ms
✓ tests/server/organization-routes.test.ts (3 tests) 37ms
✓ tests/server/first-import-routes.test.ts (3 tests) 35ms
✓ tests/server/content-routes-list.test.ts (4 tests) 35ms
✓ tests/server/content-service.test.ts (10 tests) 12ms
✓ tests/repository/real-history-verifier.test.ts (16 tests) 273ms
✓ tests/server/organization-service.test.ts (6 tests) 14ms
✓ tests/server/folder-ingestion-state.test.ts (3 tests) 6ms
✓ tests/server/application-routes.test.ts (8 tests) 79ms
stdout | tests/server/app.test.ts > createApp local defaults > rejects an incomplete authenticated context before a core route runs
{"error":"Application authentication returned an invalid OSS request context","level":"error","message":"Unhandled request error","timestamp":"2026-08-18T02:14:25.105Z"}

✓ tests/server/app.test.ts (8 tests) 131ms
✓ tests/server/application-service.test.ts (4 tests) 9ms
✓ tests/server/first-import-state.test.ts (3 tests) 6ms
✓ tests/repository/product-boundary.test.ts (4 tests) 3ms
✓ tests/server/recall-tutorial-service.test.ts (4 tests) 8ms
✓ tests/server/migration-utils.test.ts (3 tests) 3ms
✓ tests/repository/container-mcp-runtime.test.ts (1 test) 2ms
✓ tests/server/library-membership.test.ts (2 tests) 5ms
✓ tests/repository/install-prompt-sync.test.ts (1 test) 3ms
✓ tests/repository/recall-tutorial-client-matrix.test.ts (1 test) 4ms
↓ tests/server/application-database.integration.test.ts (1 test | 1 skipped)
✓ tests/repository/alpha-loop-setup.test.ts (12 tests) 3747ms
✓ Alpha Loop repository posture > replaces a colliding generated Compose identity and reuses only its own running project 1797ms
✓ Alpha Loop repository posture > replaces a daemon rooted in a prior worktree before browser preflight 589ms
✓ Alpha Loop repository posture > recognizes its daemon when the OSS checkout is a submodule 771ms
✓ Alpha Loop repository posture > recovers a normal browser open once after a stale project daemon fails 567ms
✓ tests/repository/release-assets.test.ts (7 tests) 4097ms
✓ immutable installer release assets > generates the verified macos Node proposal without mutation 512ms
✓ immutable installer release assets > generates the verified windows-wsl2 Node proposal without mutation 929ms
✓ immutable installer release assets > leaves the user home unchanged when dependency consent is refused 433ms
✓ immutable installer release assets > reuses a compatible installed Node dependency without mutation 743ms
✓ immutable installer release assets > reuses a managed Node dependency after an interrupted bootstrap 1462ms

Test Files 29 passed | 1 skipped (30)
Tests 124 passed | 1 skipped (125)
Start at 19:14:24
Duration 4.45s (transform 989ms, setup 0ms, collect 5.49s, tests 8.87s, environment 3ms, prepare 2.38s)

@answer-engine/cli@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/cli
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/cli

✓ src/tests/config.test.ts (5 tests) 54ms
✓ src/tests/local-dir-source.test.ts (11 tests) 32ms
✓ src/tests/import-commands.test.ts (5 tests) 27ms
✓ src/tests/sync-source.test.ts (2 tests) 23ms
✓ src/tests/env-generator.test.ts (2 tests) 11ms
✓ src/tests/first-import.test.ts (5 tests) 114ms
✓ src/tests/channel.test.ts (4 tests) 136ms
✓ src/tests/eval-commands.test.ts (8 tests) 188ms
✓ src/tests/cli-entrypoint.test.ts (1 test) 341ms
✓ CLI executable entrypoint > waits for an asynchronous API command before exiting 340ms
✓ src/tests/wiring.test.ts (26 tests) 204ms
✓ src/tests/local-dir-sync.test.ts (7 tests) 246ms
✓ src/tests/interchange-importer.test.ts (3 tests) 25ms
✓ src/tests/home.test.ts (3 tests) 24ms
✓ src/tests/config-commands.test.ts (3 tests) 44ms
✓ src/tests/sync-service.test.ts (8 tests) 63ms
✓ src/tests/user-config.test.ts (8 tests) 18ms
✓ src/tests/raw-archive.test.ts (10 tests) 423ms
✓ src/tests/claude-code-normalize.test.ts (5 tests) 414ms
✓ src/tests/interchange.test.ts (5 tests) 6ms
✓ src/tests/organize-commands.test.ts (4 tests) 7ms
✓ src/tests/folder-ingestion.test.ts (8 tests) 365ms
✓ src/tests/output.test.ts (7 tests) 6ms
✓ src/tests/codex-normalize.test.ts (7 tests) 469ms
✓ src/tests/content-commands.test.ts (4 tests) 9ms
✓ src/tests/tutorial-commands.test.ts (3 tests) 7ms
✓ src/tests/cowork-normalize.test.ts (5 tests) 593ms
✓ src/tests/auth.test.ts (1 test) 2ms
✓ src/tests/api-client.test.ts (12 tests) 6ms
✓ src/tests/sync-commands.test.ts (13 tests) 813ms

Test Files 29 passed (29)
Tests 185 passed (185)
Start at 19:14:29
Duration 1.33s (transform 1.22s, setup 0ms, collect 3.60s, tests 4.67s, environment 3ms, prepare 2.26s)

@answer-engine/mcp-server@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/mcp-server
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/mcp-server

✓ src/tests/api-client.test.ts (15 tests) 7ms
✓ src/tests/resources.test.ts (7 tests) 15ms
✓ src/tests/tools.test.ts (26 tests) 12ms
✓ src/tests/server.test.ts (6 tests) 20ms
✓ src/tests/index.test.ts (5 tests) 3ms
✓ src/tests/http-server.test.ts (4 tests) 38ms

Test Files 6 passed (6)
Tests 63 passed (63)
Start at 19:14:31
Duration 390ms (transform 136ms, setup 0ms, collect 499ms, tests 94ms, environment 1ms, prepare 316ms)

@answer-engine/create@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/create
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/create

✓ src/tests/skills.test.ts (3 tests) 7ms
✓ src/tests/interview.test.ts (3 tests) 3ms
✓ src/tests/clients.test.ts (4 tests) 6ms
✓ src/tests/verify.test.ts (10 tests) 6ms
✓ src/tests/preflight.test.ts (20 tests) 13ms
✓ src/tests/uninstall.test.ts (4 tests) 5ms
✓ src/tests/release.test.ts (7 tests) 23ms
✓ src/tests/docker.test.ts (4 tests) 10ms
✓ src/tests/runtime-channel.test.ts (18 tests) 60ms
✓ src/tests/models.test.ts (6 tests) 10ms
✓ src/tests/scaffold.test.ts (6 tests) 42ms
✓ src/tests/index.test.ts (2 tests) 3ms
✓ src/tests/legacy-adoption.test.ts (9 tests) 69ms
✓ src/tests/lifecycle.test.ts (36 tests) 124ms
✓ src/tests/install-channel.test.ts (3 tests) 101ms
✓ src/tests/integrations.test.ts (11 tests) 149ms

Test Files 16 passed (16)
Tests 146 passed (146)
Start at 19:14:31
Duration 593ms (transform 612ms, setup 0ms, collect 2.23s, tests 631ms, environment 2ms, prepare 1.27s)

@answer-engine/web-ui@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/web-ui
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/web-ui

✓ src/styles.test.ts (3 tests) 2ms
✓ src/api.test.ts (13 tests) 11ms
✓ src/composition.test.tsx (5 tests) 18ms
✓ src/public.test.ts (1 test) 2ms
✓ src/App.test.tsx (6 tests) 280ms
✓ src/advanced-workflows.test.tsx (3 tests) 428ms
✓ src/workflows.test.tsx (9 tests) 1149ms

Test Files 7 passed (7)
Tests 40 passed (40)
Start at 19:14:33
Duration 2.03s (transform 282ms, setup 0ms, collect 1.70s, tests 1.89s, environment 1.80s, prepare 353ms)

@answer-engine/server@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78
tsc && tsc-alias

@answer-engine/cli@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/cli
node -e "require('node:fs').rmSync('dist', { recursive: true, force: true })" && tsc

@answer-engine/mcp-server@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/mcp-server
node -e "require('node:fs').rmSync('dist', { recursive: true, force: true })" && node --max-old-space-size=4096 node_modules/typescript/bin/tsc

@answer-engine/create@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/create
node -e "require('node:fs').rmSync('dist', { recursive: true, force: true })" && tsc && node -e "require('node:fs').chmodSync('dist/index.js', 0o755)"

@answer-engine/web-ui@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/packages/web-ui
tsc -b && vite build && tsc -p tsconfig.lib.json && vite build --config vite.config.lib.ts

vite v6.4.2 building for production...
transforming...
✓ 357 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html 0.46 kB │ gzip: 0.30 kB
dist/assets/index-PGy1UwwX.css 28.29 kB │ gzip: 6.14 kB
dist/assets/index-BiSUzY1I.js 560.59 kB │ gzip: 165.59 kB
✓ built in 703ms
vite v6.4.2 building for production...
transforming...
✓ 19 modules transformed.
rendering chunks...
computing gzip size...
dist/lib/answer-engine-web.js 178.37 kB │ gzip: 36.13 kB
✓ built in 121ms

@answer-engine/desktop@1.1.0 lint /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop
eslint "src/**/*.{ts,cts}"

@answer-engine/desktop@1.1.0 type-check /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop
tsc -p tsconfig.lint.json --noEmit

@answer-engine/desktop@1.1.0 test /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop
vitest run

RUN v3.2.7 /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop

✓ src/tests/tray.test.ts (3 tests) 2ms
✓ src/tests/packaging.test.ts (2 tests) 2ms
✓ src/tests/runtime-controller.test.ts (5 tests) 6ms
✓ src/tests/security.test.ts (5 tests) 3ms
✓ src/tests/ipc.test.ts (3 tests) 4ms

Test Files 5 passed (5)
Tests 18 passed (18)
Start at 19:14:45
Duration 283ms (transform 88ms, setup 0ms, collect 170ms, tests 18ms, environment 1ms, prepare 249ms)

@answer-engine/desktop@1.1.0 build /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop
pnpm clean && tsc -p tsconfig.json && node scripts/copy-assets.mjs

@answer-engine/desktop@1.1.0 clean /Users/bradtaylor/Documents/GitHub/answer-engine-oss/.worktrees/issue-78/apps/desktop
node scripts/clean.mjs — passed (576 tests passed, 1 database integration test skipped)

  • — passed
  • no UI behavior changed; browser verification not required

@bradtaylorsf
bradtaylorsf merged commit 24377ed into master Aug 18, 2026
2 checks passed
@bradtaylorsf
bradtaylorsf deleted the fix/GH-78-ghcr-visibility-workflow branch August 18, 2026 02:18
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.

fix: remove unsupported GHCR visibility mutation from release workflow

1 participant