@learnaltitude/cli 0.5.2 → 0.6.0

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.
Files changed (3) hide show
  1. package/README.md +40 -26
  2. package/dist/cli.js +38 -39
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -68,10 +68,14 @@ that includes the nearest binding plus the bound journey's cached working-set su
68
68
  requires a connected device token; the command tells unconnected users to connect and directs
69
69
  users without a bindable journey back to Altitude.
70
70
 
71
- The envelope also carries `update_available`, a client-local boolean that is true when the CLI is
72
- behind the latest npm version seen by the last background version check. It is read from the local
73
- update-check cache only `altitude task` never makes a version request, so a lesson never waits on
74
- one. Skills update separately through the agent's plugin system.
71
+ The envelope also carries two update signals, both derived from the server's `client_releases`
72
+ answer on the settings down-sync (the server owns "what's current"; there is no npm registry
73
+ check). `update_available` is true when the CLI is behind the server's latest its meaning is
74
+ unchanged for older plugin markdown. `update_notices` is the successor surface: zero, one, or two
75
+ server-authored lines (CLI and/or plugin), compared live against the installed versions on every
76
+ read. Routine notices are offered at most once per session; urgent notices repeat within the
77
+ session. `altitude task` adds no version request of its own — a lesson never waits on one. Skills
78
+ update separately through the agent's plugin system.
75
79
 
76
80
  Tutor flows can attach the learner's verbatim answer to its canonical concepts. The tutor does
77
81
  not grade the answer; grading and any resulting mastery update are server-side:
@@ -86,15 +90,32 @@ duplicates in first-seen order, and omits `concept_ids` when no non-empty ID is
86
90
 
87
91
  ## Plugin marketplace installs and updates
88
92
 
89
- Install the Altitude plugin exclusively through the marketplace built into your coding agent. In
90
- Claude Code, run:
93
+ Install the Altitude plugin exclusively through the marketplace built into your coding agent. For
94
+ Claude Code, open a terminal and start Claude Code:
95
+
96
+ ```sh
97
+ claude
98
+ ```
99
+
100
+ Then run these commands inside that terminal session:
91
101
 
92
102
  ```text
93
103
  /plugin marketplace add jasonku09/altitude-skills
94
104
  /plugin install altitude@altitude
95
105
  ```
96
106
 
97
- For Codex, run these commands in a terminal:
107
+ When the installer asks for a scope, choose the user scope so the plugin is available across all
108
+ projects, including the new project folder created by your first lesson. If the install summary
109
+ asks you to run `/reload-plugins`, run it; newer Claude Code versions activate the plugin in place.
110
+ The VS Code built-in terminal works for this flow. The extension chat panel uses its separate
111
+ `/plugins` manager instead.
112
+
113
+ Start the lesson from a terminal with `claude --permission-mode auto`, then enter
114
+ `/altitude:begin`. Auto mode clears routine approval prompts while Claude Code's separate safety
115
+ checks screen every action and block risky ones; it is a safeguard, not a guarantee.
116
+
117
+ For Codex, update Codex to the latest version first, then run these commands in a terminal. Older
118
+ Codex CLI releases do not recognize the plugin commands.
98
119
 
99
120
  ```sh
100
121
  codex plugin marketplace add jasonku09/altitude-skills
@@ -102,7 +123,9 @@ codex plugin add altitude@altitude
102
123
  ```
103
124
 
104
125
  On the first Codex launch after installation, accept the one-time
105
- `Hooks need review -> Trust all and continue` prompt. Skills update with the agent's plugin system.
126
+ `Hooks need review -> Trust all and continue` prompt. To start the first lesson, type `$begin` and
127
+ press Enter twice; the second press expands the command in Codex's composer. Skills update with the
128
+ agent's plugin system.
106
129
 
107
130
  **Neither half updates on its own by default.** Claude Code enables marketplace auto-update only
108
131
  for official Anthropic marketplaces; `altitude` is third-party, so its auto-update starts off.
@@ -126,21 +149,12 @@ auto-update toggle. The floor is server-owned — raising it needs no client rel
126
149
 
127
150
  ## Network disclosure
128
151
 
129
- The distributed client uses the user's own agent subscription and no Altitude-held API key.
130
- Interactive `connect`, `diagnostics`, and `update` commands make anonymous, direct version checks
131
- with a single request to `registry.npmjs.org` for the CLI's latest version. Check attempts are
132
- throttled for 24 hours; the latest usable result remains cached until a later successful check
133
- replaces it. The request does not pass through the Altitude service and carries no Altitude
134
- credentials.
135
-
136
- A bound SessionStart schedules the same anonymous check without awaiting it, and the detached
137
- flusher daemon keeps doing so in the background. The SessionStart process exits roughly 250 ms
138
- after its command completes, so this scheduling improves spawn-fallback coverage only when the npm
139
- request settles inside that remaining budget; it does not guarantee fallback coverage. An
140
- interrupted attempt writes no marker and therefore cannot suppress a later daemon or command
141
- attempt. Because unbound directories keep hooks dormant, they do not start a flusher or receive
142
- background refreshes; their cache is refreshed only by `connect`, `diagnostics`, or `update`.
143
- `altitude task --json` only reads the cache and never makes a request itself. Gates and other hooks
144
- never perform the version check. Set `ALTITUDE_DISABLE_UPDATE_CHECK=1` to disable every version
145
- check. All check failures are silent and cannot change a command's exit code or discard a
146
- previously usable cache result.
152
+ The distributed client uses the user's own agent subscription and no Altitude-held API key. The
153
+ CLI makes no third-party requests: the old anonymous `registry.npmjs.org` version check is gone.
154
+ Freshness now rides the existing authenticated settings down-sync the request reports the
155
+ installed CLI and plugin versions as query parameters, and the response's `client_releases` block
156
+ carries the server's latest versions plus the notice copy. No new request is added anywhere:
157
+ `connect`, `diagnostics`, and `update` read the cached down-sync answer only; `altitude task
158
+ --json` compares against its existing network-first down-sync or cache fallback; and hooks compare
159
+ against the SessionStart pull or its cache. Gates never perform any version work. Every comparison
160
+ failure is silent and cannot change a command's exit code.