Releases: tomismeta/aperture
Aperture v0.4.1
Aperture v0.4.1
@tomismeta/aperture@0.4.1 is a product adapter-freshness patch release.
It keeps the 0.4.0 runtime, /work ingress contract, and bundled
@tomismeta/aperture-core@0.7.0 judgment engine intact while refreshing the
host adapter layer against the latest supported harness surfaces.
Highlights
- refreshes the generated Codex App Server protocol types
- maps newer Codex thread-goal, patch, MCP status, rate-limit, remote-control,
model-verification, warning, and guardian-warning notifications - updates OpenCode response routing to prefer the current session-scoped
permission endpoint - maps newer OpenCode session, todo, MCP, workspace, and worktree lifecycle
events into the shared attention stream - expands Claude Code hook coverage for safe lifecycle and status events,
including setup, prompt expansion, tool batches, file-change awareness, and
worktree lifecycle hooks - keeps the new adapter code split into bounded mapper/parser modules instead
of growing the existing adapter monoliths
Why This Matters
This release keeps Aperture's shared operator surface current with the moving
agent-harness layer without changing the core product shape.
In practice that means:
- supported adapters send richer status and audit context into Aperture
- responses route back through newer host APIs where available
- Codex protocol drift is absorbed by generated types rather than hand-written
guesses - the deterministic core SDK remains stable for embedders
What Did Not Change
This release does not change:
- the public
@tomismeta/aperture-coreSDK surface - the host-neutral
/workcontract - the default local runtime shape
- the product stance that Aperture is a shared review surface, not another
agent host
Validation
Validated with:
pnpm release:checkThat includes typecheck, lint, formatting, dependency audit, contract/schema
checks, boundary and architecture checks, the full test suite, judgment battle,
SDK proof, and product smoke.
Install
npm install -g @tomismeta/aperture
apertureSee:
Aperture v0.3.0
Aperture v0.3.0
@tomismeta/aperture@0.3.0 is a product release that tightens the live
operator loop and adds a cleaner optional ingress path for external work,
without making the shipped product heavier.
Highlights
- bundles
@tomismeta/aperture-core@0.6.0 - adds a cleaner local
/workingress path with progressive sophistication:- plain text
- minimal structured
WorkEvent WorkEvent[]batch
- adds a public response loop for structured human-input requests:
GET /work/response/{interactionId}
- preserves engaged operator focus more deliberately in the live surface
- bounds ambient retention so long-running product state stays cleaner
- clarifies the product-vs-SDK split in the docs and package entrypoints
Why This Matters
This release improves both sides of the product loop:
- the operator experience is calmer while real work is in flight
- the product is easier to integrate with when another tool needs to report
work into a running Aperture instance
The important balance is intentional:
- Aperture is still the local attention product first
/workis an optional integration seam, not the whole product story
What Did Not Change
This release does not broaden the public product surface casually.
It does not add:
- a public
/runtime/*API contract - a shipped
aperture democommand - a separate published runtime package
- webhook or cloud complexity
The product is still:
- install
@tomismeta/aperture - run
aperture - connect supported agent surfaces
- work from one calm attention surface
Validation
Validated with:
pnpm typecheck
pnpm product:smoke
pnpm release:checkInstall
npm install -g @tomismeta/aperture
apertureSee:
Aperture Core SDK v0.6.0
Aperture Core SDK v0.6.0
@tomismeta/aperture-core@0.6.0 is an attention-integrity release that keeps
the SDK small while making live judgment calmer, safer, and easier to trust.
Highlights
- keeps the core judgment path cleaner by continuing the orchestration split
around the engine without widening the public SDK surface - adds operator engagement support so hosts can preserve current focus briefly
while a human is actively interacting - bounds ambient retention and prunes empty task state instead of letting stale
passive history grow unbounded - hardens the engine with broader exhaustive guards and stronger semantic test
coverage
Why This Matters
This release improves the two things that matter most for a reusable judgment
engine:
- the engine should stay understandable and stable at its boundary
- the live attention loop should feel calm instead of twitchy under pressure
In practice that means:
- better focus continuity while a human is engaged
- safer long-running state retention
- a cleaner core file boundary without moving semantics or judgment out of core
- stronger defensive checks against silent drift as the ontology evolves
What Did Not Change
This release does not turn the SDK into a host runtime.
It does not add:
- HTTP routing
- local runtime hosting
- source-specific adapters
- TUI rendering concerns
The SDK is still the in-process deterministic judgment engine:
event in -> frame/view out -> human response in
Validation
Validated with:
pnpm typecheck
pnpm sdk:prove
pnpm release:checkInstall
npm install @tomismeta/aperture-coreSee:
Aperture v0.2.1
Aperture v0.2.1
@tomismeta/aperture@0.2.1 is a product patch release that expands Claude Code
hook coverage so Aperture sees more of the real session lifecycle without
changing the core SDK surface.
Highlights
- expands the default Claude hook install set to include:
SessionStartInstructionsLoadedPermissionDeniedSubagentStartSubagentStopTaskCreatedTaskCompletedStopFailureTeammateIdleConfigChangeCwdChangedPreCompactPostCompactSessionEnd
- adds adapter/runtime mapping for
ConfigChangeandCwdChanged - improves Claude session continuity and ambient awareness in the live product
- keeps the hook/install story aligned with the adapter’s actual supported
surface
Why This Matters
Claude Code now tells Aperture more about what is happening around a session:
- when the session starts or ends
- when instructions or config change
- when Claude changes directories
- when teammate tasks and subagents start or stop
- when compaction or API failure changes session posture
That gives the local attention surface better continuity and more legible
session-state awareness without broadening Aperture’s product shape.
What Did Not Change
This release does not change:
@tomismeta/aperture-core- the surfaced lane model
- the TUI contract
- the local-first product shape
It also still intentionally excludes:
FileChangedWorktreeCreateWorktreeRemove
Those hooks either add likely noise or require behavior-replacing integration
instead of passive observation.
Validation
Validated with:
pnpm exec tsx --test packages/claude-code/test/claude-code-adapter.test.ts packages/claude-code/test/claude-code-server.test.ts packages/aperture/test/claude-hooks.test.ts
pnpm typecheck
pnpm release:checkInstall
npm install -g @tomismeta/aperture
apertureSee:
Aperture v0.2.0
Aperture v0.2.0
@tomismeta/aperture@0.2.0 is a product release that ships the hardened
judgment substrate, clearer operator language, and the cleaned-up surfaced lane
model.
Highlights
- bundles
@tomismeta/aperture-core@0.5.0 - updates the surfaced lane language to:
nownextambient
- improves why mode and trace copy so the TUI better distinguishes:
- routed facts
- context-only semantics
- source vs inferred provenance
- cleans up runtime capture/export naming so recorded artifacts use the same
contract vocabulary as the live product - keeps cross-adapter semantic behavior more consistent across Claude Code,
OpenCode, and Codex
Why This Matters
This is the biggest product-shape cleanup since the initial package cut.
The product should now feel:
- calmer
- more coherent
- easier to inspect
- more internally consistent from SDK to runtime to TUI
In practice that means:
- cleaner now/next/ambient framing in the live surface
- better why-mode explanations
- better trace fidelity from host adapters
- more polished exported captures and replay artifacts
What Did Not Change
This release does not change the basic Aperture product shape:
- install
@tomismeta/aperture - run
aperture - connect supported agent surfaces
- work from one calm attention surface
It also does not add broader cloud or marketplace behavior. The product is
still the local attention surface built on the deterministic judgment core.
Validation
Validated with:
pnpm typecheck
pnpm --dir packages/aperture run smoke
pnpm release:checkInstall
npm install -g @tomismeta/aperture
apertureSee:
Aperture Core SDK v0.5.0
Aperture Core SDK v0.5.0
@tomismeta/aperture-core@0.5.0 is a judgment-substrate release that tightens
semantic correctness, clarifies the public SDK shape, and cleans up the
surfaced lane contract.
Highlights
- cuts over the public lane/read-model contract to:
nownextambient
- adds a curated public trace entrypoint:
@tomismeta/aperture-core/trace
- keeps the SDK organized into three clean interaction surfaces:
- root engine loop
/semantic/trace
- strengthens semantic provenance and ambiguity handling
- makes traces more legible and more explicit about:
- source facts
- inference
- decision-bearing impact
- context-only semantics
- improves cross-adapter semantic consistency for Claude Code, OpenCode, and
Codex
Why This Matters
This release makes Aperture feel more like a real reusable judgment substrate
and less like a repo-internal engine.
The biggest changes are:
- a cleaner public SDK
- a more coherent lane vocabulary
- stronger semantic correctness
- better explainability for consumers using trace output directly
The result is a core package that is easier to trust, easier to embed, and
easier to reason about across hosts.
Breaking Changes
The public surfaced lane contract now uses:
nownextambient
instead of:
activequeuedambient
That affects public view/read-model consumers and related trace lane fields.
This release also narrows the public onTrace(...) runtime shape to the curated
trace contract instead of leaking the richer internal trace snapshot.
What Did Not Change
This release does not introduce:
- model calls in the hot path
- host-specific logic in core
- a broader root-package export surface
- workflow/runtime assumptions in the SDK
The judgment path stays:
- deterministic
- local
- inspectable
Validation
Validated with:
pnpm typecheck
pnpm sdk:prove
pnpm release:checkInstall
npm install @tomismeta/aperture-coreSee:
Aperture v0.1.2
Aperture v0.1.2
@tomismeta/aperture@0.1.2 is a product patch release that ships the updated
core semantic behavior inside the public Aperture product package.
Highlights
- bundles the stronger
aperture-coresemantic interpretation from
0.4.2 - improves how the shipped product handles imported observational failures and
reduces false escalation in real agent traces
Why This Matters
@tomismeta/aperture is the installable product, not just an SDK wrapper.
Even when the product package itself does not add new top-level commands in a
patch, rebuilding it with a better judgment core matters because users feel the
result directly in:
- calmer interruption behavior
- more accurate consequence reads
- better trace explanation
What Did Not Change
This is still the same product line introduced in 0.1.0.
It does not change the basic product shape:
- install
@tomismeta/aperture - run
aperture - connect supported agent surfaces
- work from one calm attention surface
Validation
Validated with:
pnpm typecheck
pnpm --dir packages/aperture run smoke
pnpm release:checkInstall
npm install -g @tomismeta/aperture
apertureSee:
Aperture Core SDK v0.4.2
Aperture Core SDK v0.4.2
@tomismeta/aperture-core@0.4.2 is a semantic robustness patch release.
This cut improves how Aperture interprets imported agent traces without
changing the public SDK shape.
Highlights
- reclassifies observational read and edit failures more accurately
- routine readback output no longer looks like a critical failure by default
- tightens semantic risk phrase matching to reduce false escalation from loose
substring matches - adds semantic provenance so a consumer or reviewer can see whether a field
came from:- source facts
- deterministic inference
- explicit hints
- adds semantic impact tracking so traces can separate:
- decision-bearing fields
- explanatory-only fields
Why This Matters
The biggest quality improvement in this release is that Aperture gets calmer
around imported coding-agent traces.
Some public corpora report routine file readbacks as failed, even when the
tool clearly returned useful file contents. Before this patch, those could be
surfaced as higher-consequence failures than they deserved.
0.4.2 makes that class of judgment more accurate while keeping the hot path:
- deterministic
- local
- inspectable
What Did Not Change
This release does not widen the public SDK contract.
It does not add:
- new runtime dependencies
- host-specific logic in core
- model calls in the judgment path
- a broader root-package export surface
Validation
Validated with:
pnpm exec tsx --test packages/core/test/semantic-normalization.test.ts packages/core/test/trace-recorder.test.ts
pnpm typecheck
pnpm release:checkInstall
npm install @tomismeta/aperture-coreSee:
Aperture Core SDK v0.4.1
Aperture Core SDK v0.4.1
@tomismeta/aperture-core@0.4.1 is a small SDK polish release.
This patch keeps the 0.4.0 judgment engine and public package shape intact,
while tightening the SDK contract around host-aware integrations.
Highlights
- exports
AttentionSurfaceCapabilitiesand related capability types from the
root SDK package - clarifies the difference between:
- host constraints
- explicit operator profile
- learned operator behavior
- tightens npm-facing SDK wording so the package reads more clearly as the
deterministic judgment engine inside Aperture - keeps the root SDK loop small and stable:
event in -> frame/view out -> human response in
Why This Matters
SDK consumers can always adapt their host outside core.
But if a host never tells Aperture what it can actually render or accept, core
will still plan as if it is targeting the richer default surface.
This release makes that host-capability seam more explicit without expanding the
SDK into host-specific integrations.
That is especially useful for:
- conversational terminal hosts
- chat or plugin surfaces
- speech-first or audio-friendly interfaces
- any embedded host that is more constrained than the default TUI
What Did Not Change
This is not a routing or learning-behavior release.
It does not change:
- the deterministic judgment path
- default planning semantics
- learning persistence behavior
- the semantic subpath contract
Validation
Validated with:
pnpm exec tsx --test packages/core/test/public-sdk.test.ts
pnpm typecheck
npm pack --dry-runInstall
npm install @tomismeta/aperture-coreSee:
Aperture v0.1.1
Aperture v0.1.1
@tomismeta/aperture@0.1.1 is a production-behavior patch release for the
first public Aperture product package.
Production Behavior Fixes
This patch keeps the original 0.1.0 product shape and install flow intact,
while tightening the real installed experience:
- smooths SSH rendering so the surface no longer flashes or glitches while idle
- restores the idle lens pulse on setup and quiet live screens without forcing
full-screen repaints - keeps OpenCode setup guidance visible until the server is truly ready, then
preserves the server URL andopencode attach ...command in the ready state - upgrades Claude setup detection so an already-working bridge is shown as
ready, with the actual hook URL called out - lets
show setupreopen the setup surface during quiet live moments without
crowdingnowornext - hardens the built CLI artifact so the installed npm binary remains directly
executable
Everything From v0.1.0 Still Applies
0.1.1 is still the same product release line introduced in 0.1.0:
- plain
npm install -g @tomismeta/aperture - plain
aperture - local-first CLI/TUI product
- one product-owned attention surface for approvals, follow-ups, failures, and
blocked work
If you are installing Aperture for the first time, start here:
npm install -g @tomismeta/aperture
apertureIf you use Claude Code, Aperture prepares Claude on first launch. Restart
Claude Code after the first run and confirm /hooks loaded.
If you want OpenCode, run:
opencode serve --port 4096
opencode attach http://127.0.0.1:4096
apertureProduct Shape
This package is still the product, not a library surface.
Use @tomismeta/aperture when you want:
- the installed CLI/TUI experience
- one shared attention surface for agent work that needs you
- local setup, troubleshooting, and uninstall flows
Use @tomismeta/aperture-core when you want the underlying deterministic
judgment engine as an SDK.
Why This Matters
The core product loop is still:
agent events in -> attention surface out -> human response back
0.1.1 makes that loop behave better in the real world, especially for:
- SSH sessions
- clean-box installs
- existing Claude bridges
- OpenCode server-and-attach setup
Validation
Validated with:
pnpm typecheck
pnpm exec tsx --test packages/aperture/test/connection-status.test.ts packages/tui/test/tui-render.test.ts packages/tui/test/interaction.test.ts
pnpm --dir packages/aperture run smokeInstall
npm install -g @tomismeta/aperture
apertureSee: