Skip to content
2 changes: 1 addition & 1 deletion skills/ocx/references/01_management_surface.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Recent request log rows, filterable by provider, model, conversation, and status
| `--conversation` | string | Restrict to one conversation id (`--conversationId` is accepted too). |
| `--status` | string | An exact code (429) or a class (5xx). |
| `--limit` | number | Row cap; defaults to 200. |
| `--follow` | boolean | Stream new rows as JSONL; implies --jsonl. |
| `--follow` | boolean | Poll for new rows; add --jsonl to emit JSONL. |
| `--json` | boolean | Emit the server payload as JSON. |
| `--jsonl` | boolean | Emit one row per line. |

Expand Down
2 changes: 1 addition & 1 deletion src/cli/capabilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ export const CAPABILITIES: readonly Capability[] = [
{ name: "--conversation", value: "string", summary: "Restrict to one conversation id (`--conversationId` is accepted too)." },
{ name: "--status", value: "string", summary: "An exact code (429) or a class (5xx)." },
{ name: "--limit", value: "number", summary: "Row cap; defaults to 200." },
{ name: "--follow", value: "boolean", summary: "Stream new rows as JSONL; implies --jsonl." },
{ name: "--follow", value: "boolean", summary: "Poll for new rows; add --jsonl to emit JSONL." },
{ name: "--json", value: "boolean", summary: "Emit the server payload as JSON." },
{ name: "--jsonl", value: "boolean", summary: "Emit one row per line." },
],
Expand Down
6 changes: 6 additions & 0 deletions tests/cli-capabilities.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,12 @@ describe("ocx capabilities output", () => {
expect(cap?.routes).toEqual([]);
});

test("logs follow does not claim to imply JSONL output", () => {
const logs = CAPABILITIES.find(c => c.command.length === 1 && c.command[0] === "logs");
const follow = logs?.flags.find(flag => flag.name === "--follow");
expect(follow?.summary).toBe("Poll for new rows; add --jsonl to emit JSONL.");
});

test("--route without a path is usage, not a full table dump", async () => {
const cap = captureStdout();
let code: number;
Expand Down
Loading