Ships with the package like setup.md. Shows installed vs available
workflows in one merged list, handles install/update/conflict
resolution. One optional name parameter to skip the overview.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
API: replace the marketplace (submit/approve/reject/moderation) with a
minimal counter table (id + downloads). Single upsert endpoint auto-creates
rows on first ping, X-Source: site exclusion preserved. Inline migration
copies existing counts and drops legacy tables. Removes slowapi, pyyaml,
manifest validation, and all moderation routes.
CLI: gcontext add now pings the API after a successful registry install so
the download counter reflects real usage. Fire-and-forget with 3s timeout,
gated to skip when GCONTEXT_REGISTRY is overridden (tests, private registries).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract registry pipeline into registry.py with .template.yaml manifest
(per-file SHA256 hashes) for three-way check/update. New workflow MCP tool
with 4 actions (search, install, check, update). CLI commands: gcontext
update and gcontext search. Hide .template.yaml from list_dir/grep/walk.
Re-register module commands on update. Build script for registry.json.
113 tests (24 new in test_workflow_tool.py).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
gcontext add resolves against bleak-ai/workflows tarball (or any public
GitHub repo URL via GCONTEXT_REGISTRY); gcontext share validates locally
and prints the PR submission flow; init creates secrets.env with mode
600 and up warns if permissions are open; README updated for the new
CLI surface. Version bump to 0.5.0.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
write_file notes when agent.md or command files change; lazy stderr
warning (once per class per lifetime); /status reports stale fields;
resource listing adds parent entries for modules/ and connections/.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CLI command validates a local template folder against the workflow standard
(frontmatter, steps/, runs/example/), bundles files, and POSTs to the
marketplace API. --status mode queries GET /api/workflows/{id}/status.
16 new tests (suite 68 -> 84).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fetches one approved template bundle from the workflows API and
installs it as a new module. Frontmatter id names the folder, unsafe
paths rejected before any write, existing modules are never
overwritten (installs are snapshots). API base overridable with the
GCONTEXT_API_URL env var; stdlib only. 7 tests against a local HTTP
stub.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One name per role: src/gcontext moves to gcontext/ (flat layout), the
instructions files split into framework-instructions.md (G0) and the
project's agent.md (G1). Adds the built-in describe-first setup prompt,
state files as MCP resources (gcontext://<path>), and --version.
Exec: run_script splits into run_script and run_adhoc_script; results are
plain readable text with a status line, output_schema=None on all six
tools kills the {"result": ...} wrapper. 100k-char stream caps.
Writes: connection.yaml is agent-writable (only secrets.env stays
blocked), write_file returns a unified diff and warns on index.md drift,
and the instructions require user approval before every write. New
learn-from-errors rule records fail-then-fix lessons where they belong.
Fixes: secrets.load() strips surrounding quotes (quoted tokens caused
misleading 401s). Tests: 61 passing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Corrected the number of tools available to connected clients in README.md from six to five.
- Updated design.md to clarify the context ledger and its components.
- Revised modules.md to reflect changes in how modules are discovered and interacted with.
- Adjusted references to the `overview()` tool, replacing it with `list_dir()` in various documentation files.
- Removed the now obsolete `overview` tool from the codebase and updated related tests accordingly.
- Enhanced user interface components in the web application, including the addition of new sections for commands and connections.
- Introduced a new CopyPrompt component for easier prompt copying across the application.
These changes improve clarity and usability for developers interacting with the gcontext framework.
State changes (from the maat-agent spikes):
- run_script runs saved scripts by path with args and params (PARAM_<NAME>
env vars), plus ad-hoc code; results start with a status header and a
missing-package hint points at connection.yaml deps
- commands/ folders in connections and modules register as MCP prompts
(<owner>__<command>), surfaced as slash commands; .md and .py formats
- instructions.md is pushed at connect through the MCP handshake and
declared as ledger pipe G0: one controllable file is what the agent
receives at start
- read_context/write_context renamed to read_file/write_file; new list_dir
and grep tools
- stateless HTTP: server restarts no longer strand attached clients
Removed:
- flows (never met a real use case; modules plus commands cover process
needs; design.md records the return condition)
- gcontext chat (redundant once the handshake delivers instructions); the
controlled claude invocation is documented in the README instead
- docs/templates (duplicated README sections)
- the ledger's dual chat/mcp mode, collapsed to one
Structure:
- server.py is only the MCP surface; concerns split into fs.py, exec.py,
secrets.py, state.py, ledger.py, commands.py; agent-facing tool text
lives in prompts/tools/*.md
- read-only web dashboard served at the root: overview, ledger, files,
live activity feed (web/ Vite app, bundled into the wheel)
- secrets.env is now unreadable through the agent (read guard)
39 tests. Version 0.4.0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
When neither --port nor gcontext.yaml pin a port and the default is taken,
up picks the next free one and persists it to gcontext.yaml so the URL stays
stable. init no longer ships a toy connection; the README and init output now
walk through adding a real first connection instead.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Local-first state manager for AI agents. One HTTP server (gcontext up),
any MCP runtime attaches by URL. Context ledger (nothing reaches the agent
invisibly), secrets isolation (names visible, values injected and scrubbed),
flows (multi-step work computed purely from files), archive convention.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>