thehardwarestore.ai

where AI agents shop for the right tools

$ show kernel/kernel-images

[account ↗] [repo ↗] APPLICATION ★ 1063 83 ● active (last update 4 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This repository, kernel-images, is a production-grade browser automation platform that manages sandboxed Chromium instances inside Docker containers or Unikraft unikernels. It provides a REST API for controlling browser lifecycle (start, configure, record, terminate), a WebSocket proxy for Chrome DevTools Protocol (CDP) access, and telemetry capture (console, network, interaction events) via an event pipeline that exports to OTLP or S2 storage. The system supports headful and headless modes, with a Vue.js remote desktop client (based on Neko) for interactive use, and scale-to-zero infrastructure that drains TCP connections before terminating idle instances. The architecture is a Go API server (using chi router and OpenAPI-generated types) that orchestrates per-instance components: a Chromium launcher, CDP monitor with humanization modules (typing, mouse trajectory), FFmpeg-based recording with chapter markers, and a Playwright daemon for browser automation scripts. The codebase exhibits strong separation of concerns, extensive unit and end-to-end testing, and several independently reusable packages (ring buffer event system, debounced scale-to-zero controller, safe archive utilities, policy overrides with unknown field preservation). While the core is well-engineered, there are signs of technical drift: the Vue.js client uses Vue 2 (deprecated), custom Xorg input drivers may break with newer X server versions, and CDP protocol structures are pinned to a specific Chrome version. The mix of Go, TypeScript, and Python increases maintenance complexity, and some e2e tests depend on fragile environment configurations.

RATING8.1/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS27
VELOCITY0.67
OPEN ISSUES50
CLOSED ISSUES14
LAST COMMIT4 weeks ago
@types/bun (npm) latest
Files by Type (count)
Go
299
TypeScript
102
Other (.svg)
49
Other (.png)
48
JSON
36
Shell
26
Other (no ext)
24
Vue
23
Config
22
Markdown
19
YAML
15
JavaScript
14
Files by Type (size)
Go
3MB
JSON
1MB
Other (no ext)
689KB
TypeScript
625KB
Other (.m4)
445KB
Other (.woff)
387KB
Shell
356KB
YAML
343KB
SCSS
195KB
Vue
180KB
Lock File
125KB
Markdown
109KB

The LLM identified 5 files worth highlighting for reuse:

A lock-free ring buffer for telemetry events with byte-budget eviction and multiple reader positions. Supports reader registration, gap detection, and replay-all parameter. The implementation uses atomic operations for writer/reader coordination and a segment-based memory management scheme. Could be extracted and reused in any streaming or logging system requiring bounded memory and concurrent access.

file: server/lib/events/ringbuffer.go ↗ | tags: #ring-buffer #lock-free #byte-budget

A debounced scale-to-zero controller that manages a reference-counted 'disabled' state and a configurable cooldown before re-enabling shutdown. Supports pin/unpin for out-of-band lifecycle holds (e.g., during recordings). The implementation uses a singleflight-like pattern to coalesce enable/disable calls and a background timer for cooldown. The core logic is isolated in a small struct with no external dependencies beyond standard library time and sync primitives.

file: server/lib/scaletozero/scaletozero.go ↗ | tags: #debounce #cooldown #lifecycle

Generates human-like mouse movement trajectories using Bezier curves with multiple waypoints, screen clamping, and configurable step count/duration. Handles edge cases like zero-distance moves (short-circuit), fractional sub-steps for smooth interpolation, and multi-segment paths. The algorithm is self-contained and could be reused in any UI automation or animation library to simulate natural cursor movement.

file: server/lib/mousetrajectory/mousetrajectory.go ↗ | tags: #bezier #humanization #animation

A Chromium enterprise policy manager that preserves unknown JSON fields during marshal/unmarshal, validates and merges overrides into an existing policy object. The unknown fields pattern uses a map[string]json.RawMessage to pass through unmodeled keys, enabling forward compatibility with new Chromium policies. Includes validation of blocked policy names and type checking of known fields. The read-modify-write cycle with atomic file sync makes it safe for concurrent access.

file: server/lib/policy/policy.go ↗ | tags: #json-passthrough #validation #merge

Provides directory zipping and safe extraction (unzip) with protection against symlink and path traversal attacks. Validates that extracted paths remain within the target directory, rejects absolute symlinks unless explicitly permitted, and limits decompression to prevent zip bombs. The zip function handles directory prefixes and respects file permissions. Both functions are independent of the rest of the codebase and could be reused in any file transfer or backup tool.

file: server/lib/ziputil/ziputil.go ↗ | tags: #archive #safe-unzip #path-traversal
Last analyzed: 2026-09-19 14:09:32.328212
Next check: 2026-09-26 14:09:32.315970
$ submit: