@workser/cli 0.6.7 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workser/cli",
3
- "version": "0.6.7",
3
+ "version": "0.6.9",
4
4
  "description": "Workser CLI — give your local AI agent native DevOps & infrastructure on Workser. The agent runs `workser …` to provision, deploy, and manage real apps.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -75,12 +75,11 @@ pick or switch it.
75
75
  reverse it), and `workser design show --json` before writing UI. This project
76
76
  outlives your session; that context is how you don't start from zero.
77
77
  3. **A phased plan goes on the subtask list, never the Board.** Phases are
78
- `workser task subtask add` (`workser help tasks`) — not `board create`,
79
- which makes a second, driftable "the plan" the task page never reads.
80
- Write the narrative once as `doc create` (no `--work-item`, or it's hidden
81
- from the Docs panel), plus `decision create` for a real tradeoff. A plan
82
- in your reply alone is gone when the conversation scrolls. Details:
83
- `workser help sdlc-entities`.
78
+ `workser task subtask add` — not `board create`, which makes a second,
79
+ driftable "the plan" the task page never reads. Write the narrative once as
80
+ `doc create`, plus `decision create` for a real tradeoff. A plan in your
81
+ reply alone is gone when the conversation scrolls. How to correct a wrong
82
+ row, and what not to link: `workser help sdlc-entities`.
84
83
  4. **Stay in your lane.** `error.code = "owner_only"` (exit 6) means the action is
85
84
  reserved for the owner in Orbit. Don't retry or look for a workaround — tell the
86
85
  user, then continue. Provisioning the *pinned project's own* db / bucket / auth is
@@ -0,0 +1,40 @@
1
+ ---
2
+ topic: key
3
+ title: Managed keys — list and rotate this app's Workser-issued credentials
4
+ summary: See this app's AI Gateway and auth keys (redacted), and rotate one without opening Orbit.
5
+ commands: [key]
6
+ ---
7
+
8
+ # Managed keys — list and rotate this app's Workser-issued credentials
9
+
10
+ ```
11
+ workser key list [--app <webAppId>]
12
+ workser key rotate <key> [--app <webAppId>] [--env production|preview]
13
+ ```
14
+
15
+ App-scoped, not project-scoped: run from the app's own folder and `--app` is
16
+ picked up automatically; from anywhere else, pass `--app <webAppId>` — a
17
+ mistake here is the wrong app's key, so there is no "primary app" default the
18
+ way `env` has one.
19
+
20
+ ## What's rotatable
21
+
22
+ Only credentials with a real rotation handler:
23
+
24
+ - `AI_GATEWAY_API_KEY` — the deployed agent's key into the Workser AI
25
+ Gateway. Split by environment (`--env production` or `--env preview`
26
+ required), so rotating one never touches the other.
27
+ - `BETTER_AUTH_SECRET` — a single value, no `--env` needed.
28
+
29
+ Every other Workser-managed value (`DATABASE_URL`, the internal service
30
+ keys) has no rotation handler yet — each belongs to a different subsystem
31
+ with its own cutover semantics, and `key rotate` refuses rather than fake
32
+ one.
33
+
34
+ ## After rotating
35
+
36
+ The old value stops authorizing immediately, server-side. An already-running
37
+ deployment keeps using whatever it was built with until it's redeployed —
38
+ run `workser deploy` (`--prod` for the production key) to pick up the new
39
+ value. `key rotate` prints the new secret exactly once; it is never shown
40
+ again or stored anywhere in the clear.
@@ -66,6 +66,17 @@ workser doc create "Checkout — implementation plan" --markdown "$(cat plan.md)
66
66
  workser decision create "Carts live server-side" --context "…" --decision "…" --json
67
67
  ```
68
68
 
69
+ **A wrong row is edited, not replaced.** If a subtask's title, teammate, note or
70
+ scope is wrong after you created it, fix that same row:
71
+
72
+ ```bash
73
+ workser task subtask update <id> --title "…" --role api --note "…" --scope "src/api"
74
+ ```
75
+
76
+ Never tell the user a subtask is locked, and never file a second one alongside
77
+ the wrong one — a plan with a duplicate phase in it is a plan nobody can read
78
+ the progress of.
79
+
69
80
  **Don't pass `--work-item` for a multi-phase plan.** A linked document renders on
70
81
  its card and is *hidden* from the Docs panel; a plan spanning three phases
71
82
  belongs to the project, not to phase 1.