Releases: annbjer/sidelight
Release list
Sidelight v0.6.1 — security hardening
Sidelight v0.6.1 is a security-hardening release for hostile or unusually structured local repositories and files. It preserves the local-first, read-only product model while tightening Git authority, preview identity, search parsing, process lifecycle, and resource limits.
Highlights
- Constrains Git operations to validated local repository layouts and disposable metadata views.
- Prevents repository-selected helpers, filters, lazy fetching, and untrusted Git executable substitution from expanding Sidelight's authority.
- Adds finite Git deadlines, cancellation, process cleanup, serialized panel refreshes, stale-result suppression, and shutdown disposal.
- Binds preview validation and reads to one acquired regular-file descriptor, with nonblocking special-file handling and fail-closed platform policy.
- Parses raw NUL-delimited Git search identities and applies path denial before retaining matching content.
- Bounds tree construction, Git status models, streamed search results, terminal sanitization, highlighting, and rendered frames before amplification.
- Adds a public security reporting policy.
Assessment and validation
The hardening work included an AI-assisted source-security assessment using the OpenAI Codex Security plugin, followed by maintainer triage, targeted remediation, rewritten local regression tests, and bounded independent revalidation.
Release checks:
- TypeScript: passed.
- Test suite: 199 total; 198 passed; 0 failed; 1 expected platform-conditional skip.
- Production and full npm audits: 0 vulnerabilities.
- Package dry run, content inspection, disposable global install, all three binaries, hook configuration printers, and PI extension loading: passed.
- Integrated public candidate package: 60 expected files; no tests, private audit material, node_modules, secrets, or install lifecycle scripts.
- Maintainer manual TUI smoke test: passed.
This process is not a certification or penetration test and is not a claim that Sidelight is free of vulnerabilities. Sidelight remains a local application rather than an operating-system sandbox and continues to rely on the local Node.js runtime, Git executable, filesystem, terminal, and operating system.
Compatibility
Ordinary repositories, selected subdirectories, registered linked worktrees, registered submodules, file previews, Git status/diffs, search, optional session integrations, and operation outside Git repositories retain explicit compatibility coverage.
Reporting security issues
Please use the private reporting instructions in SECURITY.md rather than opening a public issue with exploit details.
Release identity
- Public release commit:
3933517 - Tag:
v0.6.1 - npm:
sidelight@0.6.1 - Tarball SHA-256:
45b9749f05dde4c1540067ba908e589a97fdc0a8e2bccbd12c65a56d02a50b26 - The npm registry tarball is byte-identical to the reviewed package produced from the tagged release commit.
sidelight 0.6.0 — one sidecar, three agents
The Sessions tab now works beside Claude Code and Codex, not only PI.
Setup is one command per agent:
sidelight-claude-code-hook --install # Claude Code
sidelight-codex-hook --install # Codex
pi install npm:sidelight # PI (as before)Each installer shows you the exact diff to your agent's config, makes a timestamped backup, and asks before writing. --uninstall reverses it; --print-config prints the snippet if you prefer manual.
How it works: tiny hook adapters run for milliseconds per event and record the same sanitized metadata as the PI extension — session, model, prompt/turn/tool counts, deny-list-filtered file paths. Never message content, never command strings, never transcripts. Snapshots gain an agent label; every snapshot remains a plain JSON file you can cat.
Honest limitations, by design: tokens/cost stay 0 for Claude Code and Codex (only exposed via message-bearing transcripts, which sidelight never parses); Codex works through shell commands, so its files-touched list stays sparse — the Git tab shows what actually changed on disk.
Also in this release: engines honesty (Node ≥22.19 to match the TUI dependency) and PHILOSOPHY.md updated for the multi-recorder reality. 126 tests; audited three ways before publish.
sidelight 0.5.3
Dependency migration: @mariozechner/pi-tui (deprecated upstream) → @earendil-works/pi-tui.
End-user effect: npm install -g sidelight is now warning-free and leaner — the deprecation notice, the Windows-only koffi FFI blob, and its install-script prompt are all gone. No behavior changes; 92/92 tests.
Found during fresh-machine install testing — thanks, past us, for insisting on that step.
sidelight 0.5.2 — first public release
The first public release of sidelight: a local-first, read-only project-awareness pane for your terminal.
Install: npm install -g sidelight · PI users: pi install npm:sidelight
What's in it:
- Files, Git, Search, and Sessions panels in a single fast TUI, built for a terminal split beside an AI coding session
- Git panel with live diff stats and colored diffs on Enter
- Smart-case search with filename matches and highlighted results; preview any file at its exact line
- Optional PI extension recording sanitized session metadata (never message content) — session names, counts, tokens, cost, files touched
yto yank paths,path:linerefs, or session resume commands via OSC 52- Deny-list for secret-looking files enforced on every surface; symlink containment in previews
- No network, no telemetry, no writes to your project — see PHILOSOPHY.md for the guarantees and the list of things we will never add
92 tests. MIT. Small enough to read — encouraged.