Farming 2.2.11
Farming v2.2.11
This release adds Farming Net as a separate deployment portal, brings a VS Code-derived Git history workflow into Project Files, makes live Agent controls follow the active runtime more faithfully, and strengthens runtime boundaries, Farming CRT, updates, remote deployment, and release packaging.
Highlights
- Farming Net deployment portal: run an independent, token-protected directory for local, remote, intranet, and tunneled Farming instances. Enrolled targets exchange short-lived, target-bound, one-time Ed25519 passes for their own normal cookies; the portal does not store or expose target tokens.
- Git history inside Project Files: inspect a bounded commit graph with branches, tags, merge parents, changed files, and working-copy state, then open a commit or local changes in Review with the correct captured revision. Project removal remains a membership action rather than a filesystem deletion and now has a clear remove icon.
- Explicit runtime and workspace boundaries: browser state uses tagged runtime bindings and backend-owned runtime observations, provider-specific planning stays behind provider adapters, routine terminal metadata uses narrow per-Agent patches, and Project Files keep their persisted workspace identity independently of live Agent hydration.
- Confirmed workspace creation: when a requested workspace directory is missing, New Agent presents the exact path and requires explicit confirmation before creating it and launching the Agent.
- Truthful live Agent controls: Codex Terminal model, reasoning, Fast, and Ultra controls follow the active CLI footer and capability catalog rather than global launch defaults. Supported changes settle before the next Composer message, while runtimes without a verified live-profile adapter hide current-session controls.
- More coherent ACP workflows: structured Chat keeps ordered transcript details across history and live updates, handles queued input and child Agent interactions more safely, preserves visible results around failures and authentication, and keeps runtime switching tied to the same provider session.
- A stronger keyboard-first CRT surface: Code and CRT switch the same live Agent, global close/kill/runtime commands follow a consistent keyboard contract, dashboard cards show compact terminal or structured-Chat activity, and dead or archived Agents no longer occupy live grid slots. When only the Main Agent is running, the dashboard restores the centered, actionable
[N] New Agentempty state instead of leaving the main screen blank. - Safer updates and remote deployment: update settings use a compact explicit flow, source deployment validates remote health before reporting success, records matching server-control metadata, and can launch through a configured glibc 2.28 runtime on older Linux hosts.
- Complete runtime packaging: both the npm package and standalone app bundles now include the shared browser protocol used by the server. Package-contract, bundle-verification, install, and startup smoke tests prevent incomplete artifacts from being published.
- Portable cross-architecture CLI packaging: Linux release builders retain plain JavaScript source whenever target-architecture V8 bytecode cannot be generated, while still rejecting any artifact that contains neither executable bytecode nor source.
- Reliable legacy Linux launch commands: app bundles now resolve the absolute Node.js executable before invoking it through the glibc 2.28 loader, so CLI commands such as
url,status, and agent operations work on older hosts instead of being treated as shared-library names. - Instant, provable Terminal recovery: the native PTY host now checkpoints its authoritative headless-xterm state with a runtime epoch and exact output index. Returning from a long-hidden page installs one current screen instead of visibly chasing old TUI redraws;
/session-viewis no longer polled, duplicates are ignored, and gaps or runtime changes recover through one authoritative checkpoint. Transport failures back off, while a repeatedly invalid checkpoint stops visibly instead of retrying forever.
Verification
- 182 backend and source-contract tests
- TypeScript typecheck and ESLint
- Focused Chromium Playwright coverage for Project removal and the Main-Agent-only CRT empty state
- Real Codex cross-skin release gate: one provider session preserved across Code Terminal, ACP Chat, CRT, MSG, model changes, and resize recovery
- Deterministic Terminal input gate with key-to-PTY-output p95 within the 250 ms release limit
/farmingproduction build- npm package smoke test: global install, daemon startup, HTTP auth-status check, and native
node-ptyload - Standalone app-bundle verification and startup smoke, including the shared browser protocol runtime dependency
- Package-content comparison against
farming-code@2.2.8: no top-level package area was removed, and all new Farming Net backend and frontend files are present - Textual outgoing-history scan for private paths, internal links, tokens, and key material
Compatibility Note
- The macOS CLI artifact is ad-hoc signed, not Developer ID signed or notarized. Depending on local security settings, the first launch may require an explicit manual allow action before rerunning the CLI.
Upgrade
npm install --global farming-code@2.2.11 && farming daemon