# Clavue v8.10.16 — Website / Marketing Update Pack

**Audience**：clavue.com 的内容维护者 / marketing。
**目标**：把 8.10.16 的 `--resume` 两个 bug fix 同步到首页 / changelog / docs。
**约束**：本仓库不含网站源码（见 `docs/website-content-recommendations.md`）。

---

## 1. 首页改动建议

### 1.1 顶部 banner / hero 副标题

替换或新增：

> **v8.10.16** — `clavue --resume <uuid>` 现在可跨项目目录工作（从 A 项目 resume B 项目的会话不再 "No conversation found"）。`--resume` 拼错 UUID + 同时给 prompt 不再静默吞 prompt，stderr 显式 warn。

CTA 链接到 changelog 锚点 `#8-10-16`。

### 1.2 "新修复" 卡片

**卡 1: Cross-project --resume by UUID**

- 标题：`clavue --resume <uuid>` works across project dirs
- 副标题：之前 `--resume <uuid>` 只看当前 cwd 对应的 project dir，UUID 完全正确但 cwd 不对就 "No conversation found"。8.10.16 在 fast path miss 时 fallback 扫所有 sibling project dirs（UUID 全局唯一，第一命中即正确），同时把 LogOption.fullPath 也改成 resolved path 避免下游写盘到错位置。
- 链接：`/docs/changelog#8-10-16`

**卡 2: Loud failure for invalid `--resume` UUID**

- 标题：No more silent prompt-eating on `--resume` typos
- 副标题：之前 `clavue --resume <typo-uuid> "my prompt"` 会静默 fallthrough 到 picker，把无效 UUID 当 search term（picker 显示空），同时 prompt argument 完全丢弃 —— 用户感知是"CLI hang 了"。8.10.16 在 picker fallthrough 前发两条 stderr warning：UUID 拼错 + prompt 会被忽略，让 silent failure 变响。
- 链接：`/docs/changelog#8-10-16`

---

## 2. Changelog 页

把以下 markdown 块直接 append 到 changelog 页顶部：

```markdown
## v8.10.16 — 2026-05-15

### Fixed
- **`clavue --resume <uuid>` 跨项目目录工作**：`loadSessionFile(sessionId)` 之前只看 `getSessionProjectDir() ?? getProjectDir(getOriginalCwd())` 这一个固定路径，cwd 不对就找不到会话（即使 UUID 完全正确）。新增 `resolveSessionFilePath(sessionId)`：本地 stat miss 时 readdir `~/.clavue/projects/`，对每个 sibling dir 试 `<dir>/<uuid>.jsonl`，第一命中即返回。`getLastSessionLog` 同时把 LogOption.fullPath 改成 resolved path，确保下游 `recordTranscript` / `copyPlanForResume` / `copyFileHistoryForResume` 写到正确目录。
- **`--resume <invalid-uuid> "<prompt>"` 不再静默吞 prompt**：之前 invalid UUID 会 fallthrough 到 picker（无效 UUID 当 search term），同时 positional prompt 被完全丢弃 —— silent failure 让用户感知像 CLI hang。8.10.16 在 picker 入口前两条 stderr warning：(a) `--resume` value 像 UUID 但 validateUuid 拒绝时提示 `Standard UUIDs are 36 characters: 8-4-4-4-12 hex digits`；(b) 同时给了 prompt argument 时明确告知 prompt 会被忽略。

### Tests
- 1301 tests / 1298 pass / 3 skipped / 0 fail（`npm run check`，~59s）

### Compatibility
- `--resume` CLI 形态不变。
- 同项目 resume 行为不变（fast path 不动）。
- 跨项目 resume 从"必失败"变成"工作"，纯增强。
- 直接从 8.10.15 升上来即可。

升级：

\`\`\`bash
npm install -g clavue@8.10.16
\`\`\`

完整发布说明：[docs/clavue-v8.10.16-release-notes.md](https://github.com/mycode699/clavue/blob/v8.10.16/docs/clavue-v8.10.16-release-notes.md)
```

---

## 3. Docs 页改动建议

### 3.1 在 `/docs/resume` 新增或更新一节

```markdown
## Cross-project resume by UUID

`clavue --resume <uuid>` works regardless of current working directory.
UUIDs are globally unique, so Clavue will:

1. First check the project dir derived from current cwd (fast path).
2. If miss, scan all sibling project dirs under `~/.clavue/projects/`
   for `<uuid>.jsonl`.
3. First hit wins.

This means you can resume a session originally recorded in
`/Volumes/MobileDrive/.../cmux-foo/` from inside
`/Users/me/codebase/some-other-project/` — UUID alone is enough.

Custom-title resume (`clavue --resume my-fav-session`) is still scoped
by exact match across known sessions.

## Invalid UUID warnings

If you typo the UUID (extra character, missing dash), Clavue prints
two stderr warnings before falling through to the interactive picker:

- `Warning: --resume value "<value>" is not a valid UUID and no session
  matched it as a custom title. ... Standard UUIDs are 36 characters:
  8-4-4-4-12 hex digits.`
- (if you also passed a prompt argument) `Warning: prompt argument
  "<text>" is ignored on the resume picker path. Pick a session, then
  send the prompt from the REPL.`

Previously this was silent — you'd see an empty picker and your prompt
would vanish. Now both failure modes surface clearly.
```

### 3.2 更新 `/docs/changelog`

把 §2 的 changelog 块直接贴顶部即可。

---

## 4. llms.txt / llms-full.txt

本次发布同时把这两份文件的版本字段同步到 8.10.16。如果网站直接消费这两份文件做发布版本声明，请确认拉取最新仓库内容。

---

## 5. Social / 短文案候选

> Clavue 8.10.16 修了 `--resume` 两个真问题：(1) `clavue --resume <uuid>` 现在可跨项目目录工作 —— 从 A 项目 resume B 项目的会话不再 "No conversation found"；(2) `--resume <typo-uuid> "prompt"` 不再静默吞 prompt，UUID 拼错 + prompt 被忽略都会 stderr warn。npm i -g clavue@8.10.16

> v8.10.16: `clavue --resume <uuid>` now works across project dirs (UUIDs are globally unique — Clavue scans all `~/.clavue/projects/` if not found locally). Typo'd UUID + prompt argument no longer silently eaten — both failures get loud stderr warnings instead.

---

## 6. 不要做的事

- **不要把 8.10.16 描述为新功能** — 这是两个真 bug 的修复，定位是 patch release。
- **不要在公开文案里说 "session id 模糊匹配"** — 跨项目 resume 是 UUID 精确匹配，不是模糊；UUID 全局唯一是这条 fast path 能成立的前提。
- **不要在公开文案里说 picker 路径会自动跑 prompt argument** — 8.10.16 只是 warn，不是透传。透传是 8.10.17+ 的潜在改进。
