The command invocation used "gcontext" instead of the dynamic server
name from /api/project, so copied slash commands were wrong for
non-default instance names.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Expose built-in framework prompts alongside project commands/ files
in the /api/commands endpoint and Commands.jsx UI, grouped by owner.
- Tighten setup.md so approvals aren't re-asked for explicitly requested
items and agent.md is written without confirmation.
- Document commands/ folders and module portability rules in
framework-instructions.md; trim duplicated conventions from
docs/modules.md in favor of that single source.
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>