@inetafrica/open-claudia 3.1.25 → 3.1.26

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
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## v3.1.26 — Claude Opus 5 in the model picker
4
+
5
+ - **`claude-opus-5` added to the Claude provider model list** (`CLAUDE_MODELS`), slotted between `claude-fable-5` and `claude-opus-4-8`. Opus 5 launched 2026-07-24 (near-Fable-5 capability at roughly half the price; Anthropic's new default on Max). Verified live before listing: a real CLI round-trip with `--model claude-opus-5` succeeded. Free-text `/model claude-opus-5` already worked (the `/model` handler doesn't validate against the list); this puts it on the picker buttons for `/model` and `/login`. Default model unchanged (`claude-opus-4-8`).
6
+
3
7
  ## v3.1.25 — Permissions hardening: audit fixes, the 360° dangling-pathway sweep, and capability-scoped approvals
4
8
 
5
9
  - **Six audit fixes (full ledger: `docs/permissions-audit-2026-07.md`).** (F1) the enforcer judge gets a 60s timeout (`ENFORCER_TIMEOUT_MS`) + one retry on transient transport errors — cold-start overruns no longer fail legitimate replies closed into spurious owner cards. (F2, critical) only Bash was hooked: an external speaker could have the agent write files via provider Write/Edit tools, bypassing the approval path entirely — a second PreToolUse matcher now routes `Write|Edit|MultiEdit|NotebookEdit` to the same speaker-gated deny. (F3) approval cards are person-first: the owner authorizes a PERSON's ask, not a wall of bot output. (F4) up-front triage: inbound is judged BEFORE any work happens; held turns generate nothing. (F5) turn grant: an approval id rides scheduler job → AsyncLocalStorage (the agent subprocess can never forge it), honored in reply vets, validated fail-closed — kills the double-approval fatigue that trains blanket-allow habits. (F6) mandate writes are slug-keyed, whitespace-deduped, and capped at 4000 chars by REFUSAL, never truncation — it's security text.
@@ -8,6 +8,7 @@ const { createClaudeHookTransport } = require("./claude-hook");
8
8
 
9
9
  const CLAUDE_MODELS = Object.freeze([
10
10
  "claude-fable-5",
11
+ "claude-opus-5",
11
12
  "claude-opus-4-8",
12
13
  "claude-opus-4-7",
13
14
  "claude-opus-4-6",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inetafrica/open-claudia",
3
- "version": "3.1.25",
3
+ "version": "3.1.26",
4
4
  "description": "An always-on, provider-agnostic coding-agent harness for Claude Code and OpenAI Codex via chat",
5
5
  "main": "bot.js",
6
6
  "bin": {
@@ -319,7 +319,10 @@ assert.match(pkg.description, /provider-agnostic coding-agent harness/i);
319
319
  // deterministic read-side filtering at the speakerFor choke point, 30d
320
320
  // default TTL on tap-grants, refresh-not-stack re-grants, /guardrails
321
321
  // listing + revoke across all three layers).
322
- assert.strictEqual(pkg.version, "3.1.25", "release version must remain unchanged without explicit approval");
322
+ // 3.1.26 approved by Sumeet 2026-07-25 ("Do it"): add claude-opus-5 (launched
323
+ // 2026-07-24) to the Claude provider model picker; verified live via a CLI
324
+ // round-trip with --model claude-opus-5 before listing.
325
+ assert.strictEqual(pkg.version, "3.1.26", "release version must remain unchanged without explicit approval");
323
326
  for (const keyword of ["claude", "codex", "coding-agent", "provider-agnostic"]) {
324
327
  assert.ok(pkg.keywords.includes(keyword), `package keyword missing: ${keyword}`);
325
328
  }