Repository navigation
fix(projects): grow the disk via upgrade-instance --volume-size; stop update --storage-size - #315
Conversation
… update --storage-size Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
[Medium impact] The PR appears safe to merge; the previous test gap is fixed, and no new blocking issue was found. SummaryAdds disk growth through
No new actionable issues were found in the changes since the previous review. Reviews (2) · Last reviewed commit: "fix(projects): drop the projects-get pro..." · Reviewed by Greptile |
…nstance projects get shows no disk size, so pointing users at it to watch a resize sends them nowhere. Also cover fractional --volume-size and fold the risk entry back into a single object. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Self-review round, 0800a84:
Not in this repo: |
There was a problem hiding this comment.
Reviewed by Wang Miao
This PR is the right fix. The old projects update --storage-size saved a number to the database and told the user the disk had grown when it hadn't. It is now refused with a pointer to projects upgrade-instance --volume-size, which sends volumeSizeGiB to the endpoint that actually resizes the volume. I checked the new request body against insforge-cloud-backend and it matches. The response is handled correctly in both cases: when only the volume changes, the backend leaves the instance-type fields out, and when both change, the output is right too. The one problem is that the insforge-cli agent skill wasn't updated alongside the command. That skill still teaches the flag this PR turns into an error, and it never mentions the only working way to grow a disk. The repo's own rules ask for the two to change together, so I'm requesting changes.
The insforge-cli agent skill still teaches update --storage-size and has no --volume-size
important · judgement · conventions · src/commands/projects/manage.ts:81
DEVELOPMENT.md §3 says: "When you add, rename, or change the behavior of a user-facing CLI command, you almost certainly need to update the insforge-cli skill … open a PR in InsForge/agent-skills to update it in the same change set." There is no such PR; the repo redirects to InsForge/insforge-skills, and nothing there mentions volume-size. The skill the CLI installs for every agent (npx skills add insforge/agent-skills in src/lib/skills.ts:91) still says:
skills/insforge-cli/SKILL.md:148:projects update [--name] [--domain] [--storage-size <gib>]. After this PR, an agent that follows this line gets a hard error.skills/insforge-cli/SKILL.md:151:projects upgrade-instance <type>. The type shows as required, and--volume-sizeisn't documented at all.
The error message points agents to the right command, so they can recover. But the flag this PR exists to provide stays invisible to the agents that use this CLI most. The fix is a companion skills PR that:
- removes
--storage-sizefrom line 148; - marks
[type]as optional on line 151; - documents
--volume-size <gib>, which can only grow the disk and resizes it online.
Evidence
read-the-code: DEVELOPMENT.md:64-84, src/lib/skills.ts:91, InsForge/insforge-skills skills/insforge-cli/SKILL.md:148,151. I searched the insforge-skills PR list for volume-size and found nothing, and gh api repos/InsForge/agent-skills resolves to InsForge/insforge-skills. For the backend contract I read insforge-cloud-backend src/routes/project.routes.ts:104-115, src/controllers/project.controller.ts:1529-1588 and src/services/maintain/project-manipulator.service.ts (upgradeInstanceType and its success return).
There was a problem hiding this comment.
Reviewed by Yang Dong
This correctly moves disk growth to upgrade-instance --volume-size and rejects the obsolete update flag. I would not merge it yet because the CLI’s auto-installed agent skill still teaches the incompatible command syntax, so users will receive commands this release rejects.
The auto-installed skill still teaches the command this change rejects
important · defect · correctness · src/commands/projects/manage.ts:81
create and link install the InsForge CLI skill, whose project-lifecycle section still recommends projects update --storage-size and documents upgrade-instance as requiring an instance type. After this release, agents following that installed skill will issue a command rejected at line 85 and will not know the new volume-only form; update the corresponding skill entries alongside this change as required by the repository’s synchronization rule.
Evidence
read-the-code — src/commands/projects/manage.ts:75-99, src/commands/projects/manage.ts:277-304, src/lib/skills.ts:88-99, DEVELOPMENT.md:62-78, InsForge/insforge-skills:skills/insforge-cli/SKILL.md:124-129
|
Wang Miao and Yang Dong both flagged the skill sync. The companion change is InsForge/insforge-skills PR 157. It removes |
Summary
insforge projects update --storage-size 20sentPUT /projects/v1/:id {storageDiskSize}and printedProject "…" updated., but that endpoint only saves a number in the database and never resizes the EBS volume. A customer was told their disk grew when it hadn't.projects upgrade-instancecouldn't setvolumeSizeGiBeither, so the CLI had no working way to grow a disk.projects upgrade-instance [instanceType] --volume-size <gib>: the instance type is now optional. At least one of the two is required. Sends{ instanceType?, volumeSizeGiB? }to/projects/v1/:id/upgrade-instance. PrintsDisk: 16 GiB → 20 GiBwhen the backend returns the previous size.projects update --storage-sizeis hidden from help and now fails before any API call with:projects update` cannot resize the disk. Use `insforge projects upgrade-instance --volume-size <gib>` instead.UpdateProjectBodyno longer hasstorageDiskSize.projects upgrade-instancenow describes a disk resize (online, can't shrink) as well as an instance change.Companion backend fix: InsForge/insforge-cloud-backend (PUT rejects
storageDiskSize; resize checks against the real EBS size).Testing
New
src/commands/projects/manage.test.tscovers the request bodies and validation. Fullvitest runpasses (844), and eslint and build are clean.Link to Devin session: https://app.devin.ai/sessions/b542421259ea403d96c754cb278a4fb3
Open in Devin Desktop: https://app.devin.ai/desktop/session/b542421259ea403d96c754cb278a4fb3?variant=devin
Summary by cubic
Fixes the CLI's disk resizing so
projects upgrade-instance --volume-sizeactually grows the EBS volume, andprojects update --storage-sizestops pretending it does. The old flag is hidden and fails before any API call, pointing users to the working command.Changes
upgrade-instanceaccepts an optional[instanceType]and--volume-size(at least one required) and sends{ instanceType?, volumeSizeGiB? }to the API.update --storage-sizeis hidden and errors with a pointer toupgrade-instance --volume-size;UpdateProjectBodyno longer carriesstorageDiskSize.upgrade-instancenow covers disk resize (online, can't shrink) along with instance changes.update --storage-sizeerror path.Written for commit 0800a84. Summary will update on new commits.