@innocarpe/carpeos v0.2.1
[0.2.1] - 2026-07-29
Post-0.2.0 local/sync completeness from private dogfood (hosted Cloudflare remains
operator-private; not required for 1.0.0 per v1 readiness non-goals).
Added
carpeos project identify/carpeos sync status:trust_zone_source
(flag|env|config|device_default) so operators can see how the
active zone was resolvedcarpeos outbox status→errors[]andcarpeos sync status→
local.outbox_errors[]for pending/leased rows withlast_error- Shared PR authoring skill
skills/carpeos-pr+./scripts/install-pr-skill.sh
(Claude Code / Codex / Grok); expanded.github/PULL_REQUEST_TEMPLATE.md - Cloudflare sync guide: trust-zone resolution order, status diagnosis fields,
same-device push→pull as sequence-only replay
Fixed
- Sync Worker: rebind
protected_value_uploadson conflict when re-uploading
under a different trust zone (stale wrong-zone row no longer blocks push) - Sync client: fail closed before network when outbox trust zone ≠ store
zone; release blocked leases (delay 0) instead of leaving rows stuckleased - Sync client: transport failures include
HTTP {status}in the message (no
response bodies) - Local store: same-origin pull treats remote-only
zone_sequenceas idempotent
replay (content divergence still fails closed) - CLI: default trust zone prefers
--trust-zone→CARPEOS_TRUST_ZONE/
CARPEOS_MCP_TRUST_ZONE→config.jsontrust_zone_idbefore device-derived
tz_local_<client>(aligns with installertz_local_default)
Changed
carpeos sync statusreportsoutbox_trust_zone_ids,
outbox_trust_zone_mismatch, and structuredwarningswhen outbox zones
disagree with the active store zone