octwin-cli 0.8.9 → 0.8.10

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/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ Format: [Keep a Changelog](https://keepachangelog.com/) — newest first, bucket
5
5
  **Added · Changed · Deprecated · Removed · Fixed · Security**. The platform-wide view lives in the
6
6
  repo root [`CHANGELOG.md`](../../CHANGELOG.md); this file is the CLI-only cut that ships with the package.
7
7
 
8
+ ## [0.8.10] - 2026-09-07
9
+
10
+ ### Fixed
11
+ - **`octwin memos` failed with `400 project required` for a tenant-wide token — the exact
12
+ command the nudge tells you to run.** Every networked command can end with
13
+ *"✉ N memos from the platform — read them: `octwin memos`"*, and running precisely that with
14
+ an unpinned token answered a 400. Measured on staging: the nudge fired during a
15
+ `deploy --project …` (which supplied a project) and then named a command that could not run.
16
+
17
+ A memo has no project dimension to scope by — neither `pack_memos` nor `pack_memo_reads`
18
+ carries a `project_id`, and the read ledger is keyed by tenant — so the three call sites now
19
+ use `/api/self/t/memos`. Passing `--project` still works and is no longer needed.
20
+
8
21
  ## [0.8.9] - 2026-09-07
9
22
 
10
23
  ### Added
package/dist/index.js CHANGED
@@ -776,7 +776,7 @@ async function memosWaitingNotice(flags) {
776
776
  // on a network failure. An observer that can terminate the CLI is not an observer: with an
777
777
  // unreachable platform this nudge would have failed the command it was only meant to annotate,
778
778
  // and now that the polls run BEFORE the command it would have failed it before it even ran.
779
- const res = await fetch(`${t.url}/api/self/p/memos?meta=1`, {
779
+ const res = await fetch(`${t.url}/api/self/t/memos?meta=1`, {
780
780
  headers: authHeaders(t), signal: AbortSignal.timeout(2_000),
781
781
  });
782
782
  const status = res.status;
@@ -2681,7 +2681,7 @@ async function cmdFeedback(flags) {
2681
2681
  async function cmdMemos(flags) {
2682
2682
  const t = resolveTarget(flags);
2683
2683
  const all = flags.all === true;
2684
- const { status, json } = await apiGet(`${t.url}/api/self/p/memos${all ? '?all=1' : ''}`, t);
2684
+ const { status, json } = await apiGet(`${t.url}/api/self/t/memos${all ? '?all=1' : ''}`, t);
2685
2685
  if (status !== 200) {
2686
2686
  die(`could not read memos (HTTP ${status})${errDetail(json)}${authFailureDetail(status, t.url)}`);
2687
2687
  }
@@ -2711,7 +2711,7 @@ async function cmdMemos(flags) {
2711
2711
  if (!all) {
2712
2712
  const ids = rows.filter(m => !m.read_at).map(m => m.id);
2713
2713
  if (ids.length > 0) {
2714
- const res = await apiSend('POST', `${t.url}/api/self/p/memos/read`, { ids }, t);
2714
+ const res = await apiSend('POST', `${t.url}/api/self/t/memos/read`, { ids }, t);
2715
2715
  // A failed ack is not a failed command — the author HAS read them. Say so rather
2716
2716
  // than dying after printing everything, and the nudge simply fires again.
2717
2717
  if (res.status !== 200)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "octwin-cli",
3
- "version": "0.8.9",
3
+ "version": "0.8.10",
4
4
  "description": "Octwin external-pack developer CLI (by CEQUENS) — scaffold, validate, deploy, and check pure-YAML packs on your tenant.",
5
5
  "type": "module",
6
6
  "bin": {