erfanium / erfanium/h8-cli

CLI feature gaps: env unset, app update, and independent disk partition sizes

Open
#5 1 comment 0 reactions 0 assignees View on GitHub
ai-agent enhancement P1-high
Dominant language
TypeScript
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

## 1. `h8 set env` can't unset/remove environment variables

`h8 set env` only merges -- there is no way to remove an env var once set. The only workaround is a full PUT via the API with the subset of envs you want to keep.

**Proposal:** Add a `--delete` or `--remove` flag:
```
h8 set env myapp --delete GITEA_WORK_DIR # remove single var
h8 set env myapp KEY1=val1 KEY2=val2 --clear # replace all envs
```

---

## 2. No `h8 app update` command for arbitrary config changes

There is no generic way to update app config from the CLI. The only partial-update commands are `set image`, `set env`, `set replicas`, and `set disk`. Changing the command, args, probes, ingress annotations, etc. requires the web console or raw API calls.

**Proposal:** Add a generic update command:
```
h8 app update myapp --command "sleep 3600" # override entrypoint
h8 app update myapp --probe /healthz # set readiness probe
h8 app update myapp --json '{"svc":{...}}' # raw partial update
```

---

## 3. `h8 set disk` can't set independent partition sizes

Disk partitions share a single `size_in_Gi` -- you can't say "config gets 1GiB, data gets 5GiB". The two partitions split the total with no way to enforce boundaries.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the existing CLI implementations for `set env`, `set image`, `set replicas`, and `set disk`, then inspect how they call the API. Determine whether the three proposals should be separate changes and define completion around removing or replacing environment variables, supporting arbitrary app updates, and independently sizing disk partitions.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.