Repository navigation
omnifs v0.2.0-dev.2
Pre-release
Pre-release
Added
- Container shell now greets interactive users with a welcome banner: an "OMNIFS" wordmark, the tagline
open a path, read the world., and indented blocks of example paths (ls /github/<owner>/<repo>/_repo,cat /dns/<domain>/TXT, an arXivfindpipeline) and useful commands (omnifs status,omnifs logs -f,omnifs auth list). Gated on[[ -o interactive ]]sozsh -c '...'invocations stay silent. Lives inscripts/container-zshrc.zsh, copied into both the devDockerfileand the releasescripts/ci/Dockerfile.runtime. omnifs upnow prints a hint pointing atomnifs shellafter the FUSE mount comes online, so new users immediately know how to enter the projected filesystem.omnifs inspectshows a live JSONL observability stream from the host daemon as a ratatui TUI: a path-tree of mount activity, a per-mount sparkline strip, an operations log (retention 4096), and an inline waterfall for the selected trace. Use--replay <file>for a captured JSONL trace,--record <file>to tee the live stream to a host path while attached, and--plainfor line-oriented output. The host daemon emits typedInspectorEventrecords (FUSE, provider, callout, subtree, clone, cache) through a non-blocking sink (lock-freecrossbeam_queue::ArrayQueuehistory ring plustokio::sync::broadcastfor live subscribers) over TCP loopback127.0.0.1:7878. Schema lives in the newomnifs-inspectorcrate with redaction at the wire boundary. File tee is opt-in viaOMNIFS_INSPECTOR_PATH.omnifs upexposes the inspector port to host loopback soomnifs inspectworks against the standard runtime container, not justomnifs dev.- Runtime images now carry an
ai.0xff.omnifs.min-launcher-versionlabel, andomnifs devrefuses to start an image that requires a newer launcher. This catches source-image versus installed-CLI skew before Docker starts a container with missing port mappings or environment wiring. OMNIFS_CREDS_BACKEND=file|keychainoverrides the automatic credential backend selection, andomnifs devuses the file backend directly so contributor builds do not block on macOS Keychain prompts from differently signed binaries.
Changed
- Repository moved from
raulk/omnifsto0xff-ai/omnifs. All repository URLs, GHCR image references (ghcr.io/0xff-ai/omnifs), npm package homepage/repository metadata, README and documentation links, and theomnifs devclone hint are updated. TheOMNIFS_DEMO_OWNERdefault inscripts/demo.shnow points to0xff-ai. npm package names are unchanged (@0xff-ai/omnifsand@0xff-ai/omnifs-cli-*). omnifs setupprovider multiselect now sortsdbandlinearto the bottom and starts them unchecked. Both require user-supplied state (a SQLite fixture path, a Linear API key) that the smoke onboarding flow can't satisfy from ambient context.
Fixed
omnifs inspectnow reports honest socket state. The TUI starts in a waiting state until the daemon actually accepts a TCP connection, and--plainmode prints connect, disconnect, and delayed "no inspector listening" diagnostics instead of silently reconnecting forever.- GitHub repository names such as
.githuband.gitignoreare accepted as safe path segments. Only bare.and..remain rejected for traversal safety. - GitHub issue listings under a nonexistent repository now surface
NotFoundinstead ofInvalidInput, so FUSE rendersENOENTrather thanEINVALfor structurally valid paths that point at a missing repo. - GitHub OAuth device flow no longer fails on the first poll with
request_failed: Failed to parse server response. GitHub's/login/oauth/access_tokenreturns200 OKwith{"error":"authorization_pending",...}while the user is approving, violating RFC 8628;oauth25.x interpreted the 200 as success and tripped on the body schema.omnifs-authnow wrapsreqwest::Clientin aDevicePollingHttpimpl ofoauth2::AsyncHttpClientthat re-stamps any200 + JSON-with-error-fieldresponse as400, routing GitHub's responses through the standard error-handling path. Compliant providers are unaffected. omnifs devbuilds again. TheDockerfilestill referenced.cargo/, which was removed in #78; the strayCOPY .cargo .cargoand matching.dockerignoreallowlist entries are gone.