Skip to content

docs(tech-debt): flag stale contract status in app picker UI#138

Open
mcclurejt wants to merge 1 commit into
masterfrom
mcclurejt/docs/cli-upgrade-status-todo
Open

docs(tech-debt): flag stale contract status in app picker UI#138
mcclurejt wants to merge 1 commit into
masterfrom
mcclurejt/docs/cli-upgrade-status-todo

Conversation

@mcclurejt
Copy link
Copy Markdown
Contributor

Summary

Flag a misleading UX string in the CLI app picker as tech debt.

The picker shown by `compute app upgrade` / `stop` / `info` / `logs` / `releases` labels every app with `AppController.AppConfig.status` — an on-chain enum where `1 = Started`, `2 = Stopped`, `3 = Terminated`, `4 = Suspended`. The contract has no `Created` state, and freshly-created apps with no release yet still report `status == 1`. So the picker shows `- Started` for apps that have never been deployed.

Concrete symptom (observed today):

```
$ ecloud compute app list
sample-eigencompute-app
Status: Created # ← runtime/DB status
IP: No IP assigned

$ ecloud compute app upgrade
? Select app: sample-eigencompute-app (sepolia:0x297E...) - Started # ← contract status
```

Same session, same app, same backend, seconds apart. A user reasonably assumes the "Started" app is running and picks it to `stop`, then hits errors downstream.

Scope

Adds `docs/tech-debt.md` (new file — nothing else to consolidate there yet) with:

  • Symptom and reproduction
  • Root cause (two different status vocabularies: contract enum vs. API runtime status)
  • Specific code location: `packages/cli/src/utils/prompts.ts:1250` (`getContractStatusString(status)` appended to picker row)
  • Three fix options with tradeoffs + recommendation

No code change. This is a "write it down so we don't forget" commit.

Why docs-only

Functional behavior works end-to-end — upgrade, stop, etc. execute correctly regardless of the displayed string. This is pure UX polish. Should be picked up alongside any other CLI-UX work, not shipped standalone.

The compute app upgrade/stop/info picker labels every app with AppController.AppConfig.status (1=Started, 2=Stopped, ...). For freshly-created apps the contract returns 1 by default, so the picker shows '- Started' for apps that have never been deployed, contradicting what 'compute app list' shows (which pulls richer runtime status from the API: Created, Running, Stopped, Upgrading, Terminated, etc.).

This is an actively misleading UX string, not a functional bug — the downstream commands still work. Captured here so it can be picked up as a small UX fix when someone has cycles, with three scoped options (enrich picker with API status / special-case 'has release' / hide status from picker) and a recommendation.
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.

1 participant