Repository navigation
refactor: remove Image Studio, flatten account tools, drop fork-only dead symbols - #245
Merged
Merged
Conversation
…dead symbols Image Studio has had no model source since the Cindy removal, so it could not create a job. It is deleted as a whole rather than kept behind a switch nobody can turn on. Image Studio - backend service, runtime, repository and handler, the eight /api/v1/image-studio routes and GET/PUT /admin/settings/image-tools; - frontend feature, user page, navigation entry, i18n keys and the admin settings panel; - GATEWAY_IMAGE_STUDIO_ENABLED is no longer read; - migration 270 drops the three Image Studio tables and the image_tools_config setting, and clears the retired codexrip.image-tools installation row the same way 264 cleared codex-runtime; - the live paths it touched (images handler, ops error logger, policy context) are back in their upstream form. Account tools - the plugin-era indirection (operation invoker, invocation and result types, native policy fixtures, testextensions) is flattened into direct calls; folder, tag, bulk and import decisions are unchanged; - the service-level filter branch of bulk taxonomy, never reached because the handler resolves filter targets itself, is removed. Fork-only dead code - symbols and fields with no reader are removed after a per-item check against the commit that introduced them; - migration 271 drops usage_billing_dedup.account_id, which nothing reads. An older image needs the column added back before a rollback; the procedure is in .downstream/native-domains.md. Connection test - reasoning-effort validation errors are plain sentences again instead of a formatted application-error string. The deploy workflow, the release workflow and deploy/ are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Migration 270 removes only what Image Studio itself stored: the image_tools_config setting and the three image_studio_* tables. It no longer reads the retirement receipt and no longer changes the codexrip.image-tools installation, its bindings, its staged update or its bootstrap record. The follow-up change deletes the retired installation rows as a whole, so 270 has nothing to prepare for them. 270 has not been released. - 270_drop_image_studio.sql: drop the receipt guard and every statement on the sub2api_plugin_* tables; keep the setting delete, the three table drops (children first) and the two timeouts. - TestMigration270DropsImageStudio: drop the plugin fixtures, the receipt and the never-retired cases. A codexrip.image-tools installation present before the migration is unchanged after it: same row version, same value in every column. - .downstream/native-domains.md: 270 does not stop startup and does not strip the installation; the startup retirement does not read or change codexrip.image-tools. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-studio-and-flatten
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Image Studio has had no model source since the Cindy removal, so it cannot create a job. The account tools still run through the indirection built for the plugin host, which is gone. A scan against upstream v0.2.13 also found fork-only symbols and fields that nothing reads. The owner's rule is that a retired feature leaves nothing behind.
Change
Image Studio is deleted
/api/v1/image-studioroutes,GET/PUT /admin/settings/image-tools, wire providers.GATEWAY_IMAGE_STUDIO_ENABLEDis no longer read.image_studio_enabledin public settings.handler/openai_images.go,ops_error_logger.go,service/policy_context.go) are back in their upstream form.270_drop_image_studio.sqldrops the three Image Studio tables and theimage_tools_configsetting. It does not touch plugin installations: the follow-up PR removes the retired first-party plugin rows as a whole.Account tools are flattened
testextensionspackage are removed; folder, tag, bulk and import decisions are direct calls.expected_match_countitself, so the service only ever received account IDs.503 ACCOUNT_TOOLS_UNAVAILABLE. Every other code, message and decision is unchanged.Fork-only dead code
271_drop_usage_billing_dedup_account_id.sqldrops a column nothing reads. An older image fails billing writes without it, so a rollback needsALTER TABLE usage_billing_dedup ADD COLUMN account_id BIGINTfirst;.downstream/native-domains.mdhas the procedure, including dropping the column again after returning to this version.QuotaActivityStamp.Revisionstays: the quota estimate compares the whole struct.go.mod:github.com/pmezard/go-difflibis indirect again, as upstream has it.Connection test
reasoning effort is not supported by the selected account model) instead of a formatted application-error string.Not in this PR
production-deploy.yml,downstream-release.ymlanddeploy/are identical to main. Their dead inputs and theGATEWAY_IMAGE_STUDIO_ENABLEDlines are a separate task with the host deployer.What an admin sees
/image-studiois a 404 instead of a redirect to the dashboard.Verification
go build ./...(default andGOOS=linux);go vet ./...with no tag,-tags unit, and-tags integrationon repository;wire diffclean; gofmt;go mod tidy -diffclean forgo.mod.TestMigration270DropsImageStudioandTestMigration271DropsUsageBillingDedupAccountID.vue-tsc,check:i18n, and the changed CI selector scripts.Revisionafter an unchanged test showed it is read.Not run locally: golangci-lint (the local binary cannot read Go 1.27 export data), the full unit and integration suites, frontend eslint and full vitest, real model calls. CI runs the required ones.
🤖 Generated with Claude Code