Repository navigation
fix: port-forward 429 handling, quick-deploy exit code, exec hints, live tests - #182
Merged
Merged
Conversation
…ive tests
Fixes from a live test run against k8s-stack-manager on Docker Desktop.
- stack port-forward: a 429 tunnel_limit gets 3 dial retries (0.5, 1,
2 s) for tunnels that drain or close; the rate limiter's 429 is not
retried. 3 connections in a row refused with 429 stop the command only
while no other connection of the command dials or tunnels, so a full
server tunnel limit never closes working tunnels (8 parallel downloads
against a limit of 5: 0 of 8 completed before, 8 of 8 now).
- template quick-deploy: exits 1 when the returned stack has status
error. Without a log_id the deploy did not start ("fix the cause, then
run 'stackctl stack deploy <id>'"); with one it started and failed.
Server fields are sanitized. QuickDeployTemplateLog returns the log_id.
- stack exec: refusal hints no longer repeat the server message; without
a server text the hint says what the code means.
- Live tests: FullLifecycle creates a stack from the instantiated
definition; FullLifecycle and BulkOperations wait for each operation;
the cleanup waits until no operation runs and only a 404 counts as
deleted; waitStackStatus fails fast on every failed status.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
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.
Fixes from a live test run of
stack port-forwardandstack execagainst k8s-stack-manager on Docker Desktop.Changes
stack port-forward: a full server tunnel limit no longer kills working tunnelstunnel_limitnow gets 3 dial retries (0.5, 1, 2 s,portForward429Delays). That gives a tunnel that drains (up toDrainTimeout) or closes time to free its server slot. The API rate limiter's 429 (no code) is not retried.portForwarder.active). A refusal while others are active resets the counter.template quick-deployexits 1 when the stack has statuserrorlog_idthe server created the stack but did not start its deploy, for example because the namespace is still terminating. The error says why and gives the next command,stackctl stack deploy <id>.log_idthe deploy started and failed at once: the error points tostack logs.client.QuickDeployTemplateLogreturns thelog_id.stack execrefusal hintsLive tests
TestLiveWorkflow_FullLifecyclecreates a stack from the instantiated definition. Before, it deployed the definition ID and got a 404.FullLifecycleandBulkOperationswait for each operation, so the server no longer refuses the next one.waitStackStatusfails at once on every failed status.Docs: README, CLAUDE.md, the agent guide and the command help.
Tests
make lintandgo test -race ./...pass. The 429 tests passed 5 times in a row with the race detector.STACKCTL_LIVE_HEAVY=1) passes, including both rewritten tests.🤖 Generated with Claude Code