Repository navigation
ATape v0.5.6
ATape v0.5.6: Controlled Cursor capture and independent update control
This release adds an experimental Cursor Adapter, explicit unknown conversation
times, background privacy observations and a stronger compatible-update path.
The coordinated npm bundle contains the CLI and seven official Adapters,
including the new @atape/adapter-cursor package. Publication requires this
candidate's automated gates; repository integration and earlier PR checks do not
establish that these packages have been published or deployed.
The Authentication epoch remains auth-v1, including the 180 days absolute Web
Session lifetime. The coordinated artifact metadata records release and minimum
CLI version 0.5.6; an existing Instance changes its minimum only when an operator
deploys that Server artifact.
Install or refresh the actual command entry using Node.js 24 or newer:
npm install --global @atape/cli@0.5.6Cursor scope and Server prerequisites
Cursor capture is experimental. Its acceptance uses constructed Confab-derived
rows and an external synthetic native executable through the real installed
CLI, authenticated HTTP and PostgreSQL. No authenticated Cursor conversation was
available. This is compatibility evidence, not verified general Cursor CLI or
IDE support. The selected static native profile is Cursor CLI
2026.10.01-e373342; other versions and platform equivalence remain unverified.
Controlled creation uses atape start --tool cursor, with optional --project
and literal --prompt. It requires an updated npm bootstrap, an installed and
enabled Cursor Adapter, a connected Project, an interactive macOS/Linux terminal
and an explicitly configured absolute ATAPE_CURSOR_EXECUTABLE path. An older
bootstrap rejects the new command grammar before managed-runtime delegation;
selecting a newer runtime alone does not add the command to it. See the
Cursor guide for setup and supported native roots.
Only a fresh conversation started through this controlled path can acquire an
immutable local creation receipt. History without that evidence is skipped;
mutable metadata, current workspace and lossy directory slugs never establish
original Project ownership. Config/data roots must be absolute and resolve to
the same directory. Split roots, native resume/continue and arbitrary native
arguments are unsupported.
Cursor emits explicit null source clocks, stable IDs derived from physical rows
and content parts, one partial root Thread and no invented Usage. Text and tool
inputs are retained; absent tool results, model information, native IDs and child
relationships are not fabricated. Turn-end rows are Raw facts rather than proof
that a Session ended. Raw contains complete parsed native row objects through
shared upload-time redaction, not a byte-identical original-file archive.
Cursor upload requires a Server with atape.publication-target.v3, nullable
source-clock storage migration 000024_unknown_conversation_time.sql, and the
matching Reader/Search/Web behavior. Deploying those components and applying
the production migration are separate operator actions. npm publication does
neither. An older Server fails capability negotiation before publication instead
of receiving fabricated occurrence dates. Existing providers continue their
default canonical v2 path when they do not explicitly select v3; Server minimum
CLI admission still follows the deployed Server's release policy.
The new v3 contract represents unknown Session updatedAt and Event occurredAt
as required explicit JSON null. v1/v2 continue requiring known clocks. Usage and
observation clocks retain their existing separate meanings. Reader/Search show
unknown time, Search pages known dates before unknown dates, and Overview omits
unknown source clocks from dated activity. Migration 000024 also normalizes exact
historical Go-zero source clocks to null; other recorded sentinel dates and
frozen publication bytes remain unchanged. The migration rebuilds the message
paging index. See unknown-time semantics.
Continuation checks the confirmed creation prefix and last acknowledged prefix
against the same stable bytes. Repeated appends, touches and byte-identical
rewrites preserve IDs. Nonprefix rewriting, truncation or compaction stops that
source while preserving its published head. Real Cursor may rewrite a complete
assistant row during streaming; constructed fixtures cannot establish otherwise,
and the conservative check will refuse such a change. Real native streaming,
compaction, authenticated CLI/IDE behavior and child relationships remain
outstanding acceptance work. Creation evidence assumes cooperating local
processes and does not authenticate against a deliberate local UUID/file race.
Cancellation joins the immediate child and restores terminal state; cleanup of
arbitrary native tool grandchildren after parent-only cancellation remains
unverified. Proof reads are bounded without a total human first-message deadline.
Compatible updates and older clients
The local capture contract remains atape.client.v3-capture.v2; this release does
not add automatic cross-contract migration. New update control separates durable
runtime selection/recovery from capture admission, verifies complete immutable
CLI/Adapter bundles and uses a version-aware compatible catalog. Current
production bundles contain eight packages, while the catalog Reader retains its
original seven-package minimum and accepts bounded additive packages. New tools
are not installed or enabled merely because a bundle includes them.
Supported npm-global macOS/Linux installations can register an independent
hourly user-level update wakeup, including while collection is stopped, login
startup is off or the console is closed. The wake checks the existing due
schedule and preserves Stop intent. It is not a collection supervisor or a
machine-off updater. Native service availability, Node/npm removal, real
logout/reboot, power loss and Linux lifecycle behavior remain operational limits.
A failed candidate enters a finite 24-hour, 72-hour or seven-day cooldown only
after narrowly classified startup/readiness failure and confirmed restoration of
the previous runtime. Explicit manual updates can retry it. Reader-floor guards
reject stale capable writers after a forward recovery boundary; malformed or
uncertain recovery state fails closed. Already published old workers and open
consoles do not acquire these protections retroactively.
The published 0.5.4/0.5.5 capture-v2 cohort can receive a compatible bridge within
the existing same-contract update path; first adoption and subsequent capable
updates have different guarantees. Refresh the actual npm command entry before
using new bootstrap commands, and reopen old consoles after upgrading. A managed
selection is not proof that the global command entry was refreshed. External npm
replacement is not crash-atomic and may require owned forward recovery. The
historical 0.5.3 capture-v1 boundary still requires the documented manual
transition; this release does not make an old v1 worker migrate v2 state.
Automatic/manual managed updates preserve configured custom/local sources and
align only eligible installed official Adapters. Incomplete public propagation
must not advertise a partial bundle: local artifact identities are validated
before npm writes, every public manifest and tarball must match the verified
bytes, and only then can the version Release and compatible catalog advertise
it. Publication does not prove an unattended upgrade against the production
registry. See upgrade behavior and limits
and release procedure.
Background privacy observations and fixes
Privacy rules now offers a local Background privacy status page. It compares the
saved editor file with each observed job's loaded path/revision and safe rule
counts, bound to the current managed process generation. It exposes no literal
values, regular expressions or policy identity. Jobs may use different immutable
snapshots across a file edit; an observation is not a heartbeat or proof that all
sources uploaded. An unavailable report is unknown, and a stopped process's
snapshots are historical. These local descriptors are excluded from remote
device reports. The underlying rules and local test command were already shipped
in 0.5.5. See client redaction.
This release also repairs reading atomically replaced Collector status snapshots
under concurrent writes and updates the Server's Go networking dependencies,
including golang.org/x/net to 0.60.0. Server security fixes affect a built and
deployed Server artifact; publishing npm packages does not update an existing
Server process.
Candidate validation and manual acceptance disclosure
All automated release gates must pass for the exact frozen 0.5.6 candidate:
repository checks, production builds, checksummed installed CLI/Adapter packages,
updater/login/terminal checks, authenticated PostgreSQL/provider contracts
including controlled Cursor start/capture, dependency and container security,
Go race/fuzz, supported self-host configurations and paired restore. Previous
PR results and older release evidence are not this candidate's acceptance.
Cursor's controlled synthetic contract does not replace authenticated native
Cursor acceptance. Under
ADR-0117, Cursor
0.5.6 alone uses local account/MFA first publication of the exact verified
tarball, so it has no GitHub build provenance attestation. The other seven
packages use the normal GitHub Actions route. The workflow checks the existing
Cursor integrity, all eight public manifests and tarball bytes before advertising
the complete Release/catalog. Configuring Cursor's future Trusted Publisher is
separate from proving a successful Cursor OIDC publish; this version is skipped
when its verified bytes already exist. Bootstrap and publication evidence must
cover this exact candidate.
Staging evidence remains pending. Every manual
requirement below is unverified and waived for publication, never marked passed:
candidate-artifacts: manual acceptance of the candidate artifacts.official-topology: operation in the official deployment topology.github-provider-staging-smoke: live GitHub Provider staging smoke.official-domain-egress-deny-smoke: official-domain egress isolation.two-user-two-team: two-user/two-Team acceptance.waf-tls-callback: WAF, TLS and callback configuration.backup-restore: operational backup and restore.observability-secret-sample: observability secret sampling.rollback: operational rollback exercise.release-signoff: manual release signoff.
On 2026-10-10 in Asia/Singapore, the user explicitly said “npm 可以发布 然后我要做下授权。。”
and authorized npm publication. Under
ADR-0048, that
request also authorizes the manual-only waiver for this release. The separate
candidate-bound waiver will record the exact frozen candidate; automated gates
remain mandatory. This authorization does not authorize or perform Server
deployment or a production database migration.
{
"protocol": "atape.release-bundle.v1",
"version": "0.5.6",
"captureStateContract": "atape.client.v3-capture.v2",
"updateControlProtocol": "atape.update-control.v1",
"packages": [
{
"name": "@atape/adapter-claude",
"integrity": "sha512-OiNVH/kOmTlfNHyrJ2e0wnqxAqGpDvGd0HdS4Y5tH182IkqxLwfpom8OCjVZbnU1Dn7MNWNhssDlaksXh1hKdw==",
"tarball": "https://registry.npmjs.org/@atape/adapter-claude/-/adapter-claude-0.5.6.tgz"
},
{
"name": "@atape/adapter-codebuddy",
"integrity": "sha512-LLMBOQC1kft5c4ZI0UajygFI8r+TPMdlZ2Qre7RKK2ukbduFfsf4Kb5Z8wZasywBD7nSq7kZtZ5F7THySuGD0A==",
"tarball": "https://registry.npmjs.org/@atape/adapter-codebuddy/-/adapter-codebuddy-0.5.6.tgz"
},
{
"name": "@atape/adapter-codex",
"integrity": "sha512-x3Z8DdbwixUhyl6R6jX7DstVoIYS3vPlrV+3s7fLjPTCxnzhkYRBhDtnAjbE5GL/2jI9Kgp1S58NONOOtc5T/g==",
"tarball": "https://registry.npmjs.org/@atape/adapter-codex/-/adapter-codex-0.5.6.tgz"
},
{
"name": "@atape/adapter-cursor",
"integrity": "sha512-9RXsKKplilSF/Ot5W2WspB4uSDz+FxphHJNVRgG/V97Wv0jUOygwCUJ/wrPqjpam+OvVgIFhFgk/gfh8khNl9g==",
"tarball": "https://registry.npmjs.org/@atape/adapter-cursor/-/adapter-cursor-0.5.6.tgz"
},
{
"name": "@atape/adapter-grok",
"integrity": "sha512-1UDWn1UzmhfhEMQMeEqWv4I7idrIRpGSUBIAI3woQBz+aTdt4sXCc48mvZ4RMchr7HT3aXcUAI8MUriCWW0lYw==",
"tarball": "https://registry.npmjs.org/@atape/adapter-grok/-/adapter-grok-0.5.6.tgz"
},
{
"name": "@atape/adapter-kimi",
"integrity": "sha512-9qkmbE7Snhebd/72OHLTCNJeYQ9xfdzddj8pjWd0YsmeM8RPZSIlSAy4hl1wpP/clujgX/gf2EbrPG7rZu0jAw==",
"tarball": "https://registry.npmjs.org/@atape/adapter-kimi/-/adapter-kimi-0.5.6.tgz"
},
{
"name": "@atape/adapter-opencode",
"integrity": "sha512-298isoigS+StX4nIlIL49a7S7fhnJElkeh1h5XVBYFGvsNznezflqIt4EXFkhzng7f2gXu9/fzxZfDn8Yd30Gw==",
"tarball": "https://registry.npmjs.org/@atape/adapter-opencode/-/adapter-opencode-0.5.6.tgz"
},
{
"name": "@atape/cli",
"integrity": "sha512-GizK+FdSYXbSKRavc7iUx5nqv0wIPBhV4wrThmQigkz5+ln8zo7DzBK7nnQNPPRbv94BuvcaNPXDnawL6MlE9w==",
"tarball": "https://registry.npmjs.org/@atape/cli/-/cli-0.5.6.tgz"
}
]
}