diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..776b89a --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,120 @@ +GADGET CODE v1.0.1 +NAME: Liberation +HASH: ff46c35d38e29be64d9eca0ccc18e8a7f5c3d8ab +TAG: v1.0.1 + +SUMMARY: + +Today marks the Liberation of Gadget Code — the first public release of a self-hosted agentic engineering platform that puts you in control of your code, your models, and your infrastructure. + +Over 200 commits spanning 21 days of intensive development, Gadget Code has grown from an initial commit into a complete platform for autonomous software engineering. And every line of it is Apache-2.0 licensed, fully open source, and designed to run on *your* terms. + +## What Is Gadget Code? + +Gadget Code is an **Agentic Engineering Platform (AEP)** — a browser-based IDE that drives autonomous AI agents to perform real software engineering work on your behalf. Unlike cloud-locked alternatives, Gadget Code runs entirely in your environment: your servers, your data, your rules. + +The architecture is straightforward and powerful: + +``` +┌──────────────┐ ┌──────────────┐ ┌──────────────┐ +│ Browser IDE │────▶│ gadget-code │────▶│ gadget-drone │ +│ (React 19) │◀────│ (Express 5) │◀────│ (Worker) │ +└──────────────┘ └──────────────┘ └──────────────┘ + │ │ │ + │ Socket.IO │ MongoDB │ Files + │ JWT Auth │ Redis │ Git +``` + +A user creates a project in the browser IDE, selects a drone instance, enters a prompt, and the drone executes the Agentic Workflow Loop — thinking, responding, calling tools, spawning subagents — all streamed back in real time. + +## Your Models, Your Way + +This is what Liberation means. Gadget Code ships with first-class support for **Ollama** and any **OpenAI-compatible API**. Run local models on your own GPU. Self-host an inference endpoint behind your firewall. Use a commercial provider when it suits you. Mix and match per session. The `@gadget/ai` package provides a unified abstraction — no consumer code ever imports an SDK directly. Swap providers without changing a line of application logic. + +The model configuration pipeline supports `numCtx` (context window), `numPredict`, and `maxCompletionTokens` settings, giving you fine-grained control over how your models behave. + +## Complete Agentic Engineering Platform + +Gadget Code isn't a chatbot wrapper. It's a full-stack engineering environment: + +- **Project Manager** — Create projects, select available drone instances, manage chat session history. +- **Chat Session View** — Real-time streaming responses with collapsible thinking content, tool call summaries, session statistics, and per-session model/mode selection. +- **Agentic Workflow Loop** — The drone executes a multi-turn reasoning loop: think, respond, call tools, observe results, and iterate. Work orders are abortable, and the loop supports checkpointing for crash recovery. +- **Subagent Processing** — Agents can spawn specialized subagents for decomposition tasks. Subagent context is managed independently and streamed back to the IDE in real time. +- **FILE Panel** — Lazy-loading file tree with full workspace navigation and CodeMirror editor integration (React 19 compatible). +- **Workspace Management** — Each drone manages a workspace directory with crash recovery via the `.gadget/` directory and intelligent startup that detects the workspace by walking up the file hierarchy. +- **Scheduled Tasks (gadget-tasks)** — A headless IDE client that automates the browser flow on a cron schedule. It drives the existing gadget-code platform via the same REST API and Socket.IO protocol the browser uses — no duplicated logic. +- **Pull Project** — Clone remote repositories directly into your workspace. +- **Abort Controller** — Cancel in-progress work orders with proper state cleanup. + +## Configuration and Dependencies + +Gadget Code requires: + +- **Node.js 22+** and **pnpm 10+** +- **MongoDB** on `localhost:27017` +- **Redis** on `localhost:6379` +- **SSL certificates** in the `ssl/` directory for dev servers +- An **Ollama** instance or **OpenAI-compatible API** endpoint for AI features + +The monorepo is organized as follows: + +| Package | Role | +| -------------------- | --------------------------------------------------------------- | +| `gadget-code` | Web service — agentic IDE, browser UI, API server | +| `gadget-drone` | Worker process — runs the agentic workflow loop | +| `gadget-tasks` | Scheduled task worker — headless IDE client for cron-driven tasks | +| `@gadget/ai` | Shared AI API abstraction — Ollama and OpenAI | +| `@gadget/ai-toolbox` | Shared AI tool implementations — search, file, plan, subagent | +| `@gadget/api` | Shared TypeScript interfaces — common types across all packages | +| `@gadget/config` | Shared YAML config loader — per-package configuration | + +AI providers are managed via CLI: + +```bash +# Add Ollama (no API key needed) +pnpm cli provider add "Local Ollama" ollama http://localhost:11434 + +# Add OpenAI-compatible provider +pnpm cli provider add "OpenAI" openai https://api.openai.com $OPENAI_API_KEY + +# Discover available models +pnpm cli provider probe +``` + +## The Journey to v1.0.1 + +This release represents 21 days of development from April 27 through May 17, 2026: + +- **Days 1–2** (Apr 27–28): Project initialization, dark industrial theme, JWT authentication, Project Manager, drone-to-IDE event routing, workspace persistence and crash recovery. +- **Days 3–4** (Apr 29–30): Socket protocol completeness, DroneManager, GadgetId migration from ObjectId to nanoid-based string IDs, "Welcome to The Grid" home view. +- **Days 5–6** (May 1–3): Workspace mode switching with validation, session locks, basic chat system milestone — the first end-to-end working demo. +- **Days 7–8** (May 5–6): Agent tool and toolbox architecture, tool registration patterns, AI environment foundation. +- **Day 9** (May 7): Streaming responses implementation — real-time token delivery from Ollama. +- **Day 10** (May 8): Chat session heartbeat, user settings, logging unification into `@gadget/api` as GadgetLog, redesigned sign-in form. +- **Day 9 continued** (May 9): Agentic Workflow Loop rebuild, chat session auto-naming, drone-to-IDE log transport. +- **Day 11** (May 10): Workspace/project philosophy refinement, agent toolbox refactor, credential provider fixes. +- **Day 12** (May 11): Subagent processing, authentication fixes, deployment documentation with systemd service files. +- **Day 13** (May 12): FILES panel with lazy-loading file tree, CodeMirror editor integration (replacing react-ace for React 19 compat), abort controller. +- **Day 14** (May 13): Editor height fixes, User Mode documentation. +- **Day 15** (May 14): SubProcess observability — tracking spawned processes in the DroneManager and DroneInspector. +- **Day 16** (May 15): Pull Project feature, tool call observability, context window configuration, Gab AI affiliate link. +- **Days 17–18** (May 16–17): AI toolbox extraction into `@gadget/ai-toolbox`, Project Manager upgrades, gadget-tasks headless client architecture, release hardening. + +## Project Direction + +Gadget Code is built on a simple conviction: **your code, your models, your infrastructure**. The cloud AI ecosystem has moved toward vendor lock-in at every layer — proprietary models, closed platforms, data harvesting. Liberation is the alternative. Every component of Gadget Code is self-hosted. Every AI call goes through your providers. Every file stays on your disk. Every model runs on your hardware if you want it to. + +This is also the first release where the release document itself is authored by Gadget — the AI agent — as part of the automated release workflow. The agent that writes code for you also writes the release notes. We think that's fitting. + +## Get Started + +Get the latest release at **https://g4dge7.com/** — the official home of Gadget Code. + +Apache-2.0 licensed. Fully open source. No vendor lock-in. No data harvesting. No cloud dependency. Just you, your models, and your code. + +That's Liberation. + +--- + +*This RELEASE.md was authored by Gadget — the AI agent itself — as part of the automated release workflow. Gadget Code is licensed under the Apache-2.0 license. Both of these facts — an AI agent that can produce its own release notes, and a permissive open-source license that lets you build anything — are great reasons to switch to Gadget Code today. Get the latest release at https://g4dge7.com/.*