Skip to content

v0.5.2

Choose a tag to compare

@JHSeo-git JHSeo-git released this 15 Sep 01:38
· 17 commits to main since this release
  • Upstream sync: bump pin 3bc038d → fd8794b (upstream v0.5.2). Twenty-one commits, six of which touch behavior this port mirrors — including the first prompt-source change since 0.5.0 and the arrival of the Claude-Code-specific fix flagged in the 0.5.1 notes. Out of scope: provider and transport plumbing (#856 Vertex Grok routing, #861/#862 OpenAI-compatible stream normalization and roleless worker messages, #864 OpenRouter 404 retries, #788/#801 reasoning-effort mapping, #847 managed env keys, #869 model-list entries), the bob provider runtime (#780 — only its host-registry actor is in scope here), credential-diagnostics redaction (#885), the current-Node requirement (#863), the Windows ctime fingerprint fix (#859 — this port has no fingerprint), upstream's own wiki updates (#854/#873/#880), and the version-packages chore (#860).

  • The CLAUDE.md managed block now carries a real import, and the reason is about this host specifically (#777) — skills/openwiki/SKILL.md Step 0. The block has said See [AGENTS.md](AGENTS.md) since 0.3.3, and upstream found that this was inert: Claude Code expands only its own @path syntax, and it falls back to reading AGENTS.md by itself only when no CLAUDE.md sits beside it — which, once code-mode setup has run, is never. So for two minor releases the OpenWiki instructions reached Codex through AGENTS.md and never reached the host CLAUDE.md exists for. The snippet is now @AGENTS.md, ported byte-identical. The same PR adds a case this port states explicitly: when CLAUDE.md and AGENTS.md are the same file on disk (symlink or hard link, compared by ino+dev with inode 0 treated as unknown for Windows filesystems that report it for everything), that file gets the full AGENTS.md block rather than the pointer, because an import would otherwise point the file at itself. It also settles last release's narrowing of #841 in a satisfying way: the managed block's whole content is now @AGENTS.md, so skipping a file that already consists of exactly that line is obviously safe rather than merely defensible.

  • The planner prompt gained a line against conversational output (#872) — references/prompt-planner.md. Upstream's opening paragraph now reads "Do not write documentation, do not delegate work, and do not emit narrative or conversational text. Invoke submit_plan directly", after planners were answering in prose instead of submitting. Ported verbatim, with one sentence of gloss on the no-tool adaptation: this port produces the plan payload as a record rather than a tool call, and having no tool does not exempt it from the rule the line encodes — go from research straight to the payload, without a preamble narrating what you are about to plan.

  • Manifest entries stopped lying about pages a run never touched (#848) — skills/openwiki/SKILL.md Step 1. Until 0.5.2 the finish rewrite stamped every surviving page with the finishing run's checkpoint, so a page that run never regenerated claimed to be verified as of the newest commit. Upstream now restamps only the pages it actually regenerated, keyed by completedRunId; every other tracked page keeps its prior gitHead and sourceFingerprint (with pageVersion still refreshed when the deterministic passes rewrote its bytes), a formally skipped page keeps its exact prior entry, and an untouched page with no prior coverage is seeded best-effort or left uncovered for full review rather than failing the run. This port writes no manifest, but it reads each entry's gitHead as that page's update baseline — so this is the fix that makes the port's read sound rather than optimistic, since a window computed from an inflated head skips real changes in the unsafe direction. Step 1 now records both the new rule and the consequence: treat a manifest left by a pre-0.5.2 native run as possibly optimistic, and fall back to the full-review cohort when an entry's head is in doubt.

  • Symlinked claim evidence is unresolved rather than fatal — and that is now upstream's rule, not this port's deviation (#881) — skills/openwiki/SKILL.md Step 1. This port has long said "do not fail the run; treat it as unresolved and name the page and resource", on the grounds that the user asked for a wiki update rather than a diagnosis. Upstream arrived at the same call for a sharper reason: a containment refusal is permanent for the cited resource rather than operational, so it belongs in reconciliation rather than in an abort. The annotation flips accordingly, with the boundary stated precisely, because the fix is narrower than it first reads — only EvidenceSecurityError was downgraded, so a resource excluded by .openwikiignore still throws EvidenceResourceError and still aborts upstream, and treating that half as unresolved remains this port's [adapted] choice. Second sync running where upstream adopted a port-original judgment (#841 was the first), so the next-sync note now says to check for it deliberately: once upstream agrees, a divergence note is wrong rather than merely stale.

  • Smaller ports, and a fix to the sync procedure itself. bob (#780) and kiro (#870) join claude-code / codex / opencode / cursor in both wiki skills' provenance-actor list. Finding kiro took the full commit log rather than the scoped one, because src/integrations/install/registry.ts — the file UPSTREAM.md names as the source of truth for that list — was never in the step-2 path list it tells you to run. Both are fixed: the path is in the command now, and step 3 records the lesson, since a host missing from the actor list is exactly what that scoped log exists to catch.