Skip to content

feat(cli): floo deploys and floo status --preview replace the history and preview inspection commands - #401

Merged
pdonohoe02 merged 4 commits into
mainfrom
claude/project-thread-9c6u2q
Nov 7, 2026
Merged

pdonohoe02 merged 4 commits into
mainfrom
claude/project-thread-9c6u2q

Conversation

@pdonohoe02

@pdonohoe02 pdonohoe02 commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The last two folds from the deploy rework plan (epic getfloo/floo#4262, step 4):

  • floo deploys replaces deploys list, releases list and releases show. It takes --env dev|prod|preview, --limit and --cursor. When a page holds prod deploys, each prod row shows the release it shipped: a Release column in the table and a release object in JSON (tag, number, who promoted it, image).
  • floo status --preview <branch> replaces previews status, previews resources list and previews resources show. It shows the preview's deploy, URL and every managed resource branch (managed_resource_branches in JSON).
  • floo previews keeps list, delete and reset. previews reset <branch> --resource <key> replaces previews resources reset (same flags, same preflight).

Every removed command fails with COMMAND_REMOVED and names its replacement (src/commands/removed.rs).

Issue Closure

Part of getfloo/floo#4262 (step 4). Does not close it.

Changes

  • src/cli.rs: Deploys is a leaf command with --app, --env, --limit, --cursor; the releases group is removed (floo promote already replaced releases promote); Status gains --preview (conflicts with --commit and --wait); PreviewsSubcommands keeps List, Delete, Reset.
  • src/commands/deploys.rs: list takes env; prod rows join the app's releases (one list_releases call, only when a prod row is on the page; a failure warns and the list still prints).
  • src/commands/previews.rs: status carries the resource branches; resources_* removed, resources_reset is now reset.
  • src/commands/releases.rs keeps only promote.
  • src/api_client.rs: list_deploys_paginated takes an env filter; unused get_release and get_preview_managed_resource_branch removed.
  • src/commands/removed.rs: entries for the seven removed commands.
  • src/cli/guidance_tests.rs: a subcommand's own option wins over a parent alias of the same name, so floo logs build --follow (build logs' own flag) is no longer flagged as the --follow alias of floo logs --live. Found running the guidance check against the floo-docs sweep.
  • Skills permissions and next-step hints updated to the new names.

Test Plan

  • cargo fmt --check, cargo clippy --all-targets -- -D warnings, cargo test (all pass locally).
  • FLOO_EXTERNAL_GUIDANCE_DIR=<floo-docs sweep> cargo test --bin floo guidance passes.
  • New mock tests: test_deploys_prod_shows_the_release_each_deploy_shipped, test_deploys_without_a_prod_deploy_skips_releases (no releases call), test_status_preview_json_returns_all_managed_resource_branches, test_status_preview_resolves_preview_url_identifier, test_previews_reset_dry_run_and_yes_use_generic_endpoint.
  • every_replacement_names_a_command_that_exists checks each removed path no longer parses and each replacement exists.

Discovered Issues

None new. The floo API hints, knowledge base and docs site follow in their own PRs once this merges.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Eufw476uDAxxXQi632Y2Eq

…ases show

`floo deploys [--app] [--env dev|prod|preview] [--limit] [--cursor]` is the
one history command. A prod deploy shows the release it shipped: a Release
column in the table, and a `release` object (tag, number, promoted_by,
image) in --json. Only a page with a prod deploy fetches releases, so an app
on dev alone sees no release column and pays no extra call.

`floo deploys list`, `floo releases list` and `floo releases show` fail with
COMMAND_REMOVED and name the replacement. The `releases` group is gone;
`floo promote` already replaced `releases promote`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Eufw476uDAxxXQi632Y2Eq
…s resources

`floo status --preview <branch>` shows a preview's latest deploy, URL and
managed-resource branches (the old `previews status` plus `previews
resources list`; --json carries every branch, so it covers `resources show`).
`floo previews reset` replaces `previews resources reset`. previews keeps
list, delete and reset.

The removed commands fail with COMMAND_REMOVED and name the replacement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Eufw476uDAxxXQi632Y2Eq
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-07T20:24:03.959269Z 7934b43 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 02f335d313

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/commands/deploys.rs Resolved
`floo logs build --follow` is build-logs' own flag, not the `--follow`
alias of `floo logs --live`. The checker carried parent aliases into
subcommands and rejected the docs' build-log examples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Eufw476uDAxxXQi632Y2Eq
…ind their release

An app with more than 100 releases lost the release tag on older prod
deploys, because only the first release page was read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Eufw476uDAxxXQi632Y2Eq

Copy link
Copy Markdown
Contributor Author

@codex review


Generated by Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: 7934b43b31

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@pdonohoe02
pdonohoe02 merged commit c9b2e7c into main Nov 7, 2026
6 checks passed
@pdonohoe02
pdonohoe02 deleted the claude/project-thread-9c6u2q branch November 7, 2026 20:26
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.

2 participants