Reported issues for edict
Pod holds 22 of 49 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to edict.
Most discussed
Compile → Deploy Pipeline — one-step verified deployment from AST to live service
Problem
No other language lets an agent go from "idea" to "deployed, formally-verified, running service" in a single tool call chain. Currently, Edict can compile and run code — but the running part is ephemeral. There's no way to deploy the result as a persistent service.
Proposed Solution
New MCP Tool: edict_deploy
{
"tool": "edict_deploy",
"args": {
"ast": { "kind": "module", ... },
"target": "cloudflare",
"config": {
"name": "my-api-handler",
[Read the thread](https://github.com/Sowiedu/Edict/issues/78) · 2026-03-06 · closed · 4 comments
### Register on MCP tool directories (Smithery, Glama, MCP Hub)
## Problem
Agents discover MCP tools through registries (Smithery, Glama, MCP Hub, mcp.so, etc.). Edict isn't listed on any of them.
## Proposed Solution
Register Edict on major MCP tool directories:
| Registry | URL |
|----------|-----|
| Smithery | https://smithery.ai |
| Glama | https://glama.ai/mcp |
| MCP Hub | https://mcphub.io |
| mcp.so | https://mcp.so |
| Awesome MCP Servers | https://github.com/punkpeye/awesome-mcp-servers |
Each listing should include:
- Clear description emphas
[Read the thread](https://github.com/Sowiedu/Edict/issues/46) · 2026-03-03 · closed · 3 comments
### Docker image for Edict MCP server
## Problem
Running Edict requires Node.js ≥ 20, npm install, and tsx. For containerized agents, a pre-built Docker image is much simpler.
## Proposed Solution
```dockerfile
FROM node:20-slim
WORKDIR /edict
COPY . .
RUN npm ci --production
CMD ["npx", "tsx", "src/mcp/server.ts"]
Support both stdio and HTTP transports via env var:
docker run -i sowiedu/edict-mcp # stdio
docker run -p 3000:3000 -e EDICT_TRANSPORT=http sowiedu/edict-mcp # HTTP
Automated
Read the thread · 2026-03-03 · closed · 3 comments
Browser: Example HTML page — compile and run Edict in-browser
Parent: #75 (Browser-Side Compilation)
Problem
A working example page demonstrates browser compilation end-to-end and serves as the "try it" experience. This is the capstone deliverable for #75.
Scope
- Create
examples/browser/index.html— minimal example page - Demonstrates the full pipeline — AST input → validate → check → compile → run → output
- Uses the browser bundle — imports from
edict-lang/browseror loadsbrowser.bundle.js - Shows async loading
Read the thread · 2026-03-11 · closed · 2 comments
Z3 verification caching and worker thread offloading
Problem
Z3 contract verification is computationally heavy (5s timeout per verification). When the MCP server handles multiple concurrent agent requests with complex contracts, Z3 invocations can choke the Node.js event loop. Additionally, the same contract proven once may be re-verified on every compilation.
Raised by: Gemini (Medium)
Verified against codebase: ✅ — TIMEOUT_MS = 5000 in verify.ts, no caching
Proposed Solution
Phase 1: Verification caching
- Cache Z3 result
Read the thread · 2026-03-06 · closed · 2 comments
WASM module interop — import external WASM functions
Problem
Edict programs can only use built-in functions. There's no way to extend Edict's capabilities by importing functions from external WASM modules.
Proposed Solution
- Allow
importdeclarations to reference external WASM modules - The host provides the WASM module at runtime via
edict_runconfiguration - Imported functions get type signatures in the AST, verified by the type checker
- Codegen emits WASM imports from the external module
{
"kind": "import",
"id":
[Read the thread](https://github.com/Sowiedu/Edict/issues/38) · 2026-03-03 · closed · 2 comments
### types: add proper StructuredError variants for deploy errors
## Problem
The deploy handler in `handlers.ts` creates ad-hoc error objects that bypass the `StructuredError` type system using `as unknown as StructuredError`:
```typescript
// Line 787
errors: [{ error: "scaffold_failed", reason: scaffoldResult.error } as unknown as StructuredError]
// Line 831
errors: [{ error: "deploy_failed", code: deployResult.code, reason: deployResult.error, ... } as unknown as StructuredError]
These are the only as unknown as StructuredError casts in the cod
Read the thread · 2026-03-16 · closed · 1 comment
refactor: extract handlers.ts (940 lines) into focused handler modules
Problem
src/mcp/handlers.ts is 940 lines containing 20+ handler functions spanning MCP tools, deploy logic, debug, compose, invoke, and skill management. The deploy handler alone is 138 lines with nested switch/case logic. This makes the file harder to navigate and increases merge conflict surface.
Proposed Structure
Extract handler groups into focused modules within src/mcp/handlers/:
src/mcp/handlers/
├── index.ts # re-exports (backward-compatible)
├── schema.ts
[Read the thread](https://github.com/Sowiedu/Edict/issues/192) · 2026-03-16 · closed · 1 comment
## Most recent
### Register Edict on Official MCP Registry (modelcontextprotocol.io)
## Parent Issue
Part of #46 — Register on MCP tool directories
## Problem
Edict is not listed on the [Official MCP Registry](https://modelcontextprotocol.io), the canonical registry maintained by the MCP specification authors. This is the highest-authority listing for MCP servers.
## How to Submit
The Official MCP Registry (Preview) launched September 2025. Publishing options:
1. **Publisher CLI** — publish via the official MCP publisher tool
2. **`server.json`** — provide a server manifest f
[Read the thread](https://github.com/Sowiedu/Edict/issues/204) · 2026-03-18 · closed · 0 comments
### Register Edict on mcp.so
## Parent Issue
Part of #46 — Register on MCP tool directories
## Problem
Edict is not listed on [mcp.so](https://mcp.so), a community MCP server directory.
## How to Submit
Submit via the web form at https://mcp.so.
## Listing Content
- **Name**: Edict
- **Category**: Developer Tools / Code Execution / Autonomous Agents
- **Description**: Agent-first programming language: agents produce JSON AST, the compiler validates, type-checks, effect-checks, verifies contracts via Z3/SMT, and compile
[Read the thread](https://github.com/Sowiedu/Edict/issues/203) · 2026-03-18 · closed · 0 comments
### Register Edict on MCP Hub (mcphub.io)
## Parent Issue
Part of #46 — Register on MCP tool directories
## Problem
Edict is not listed on [MCP Hub](https://mcphub.io), an MCP server discovery platform.
## How to Submit
Submit via the web form at https://mcphub.io (free for developers).
Provide:
- Server name, description, category
- Supported AI models
- Contact information
- GitHub repo link
Submissions go through a review process before being publicly listed.
## Listing Content
- **Name**: Edict
- **Category**: Developer Tools
[Read the thread](https://github.com/Sowiedu/Edict/issues/202) · 2026-03-18 · closed · 0 comments
### Register Edict on Smithery (smithery.ai)
## Parent Issue
Part of #46 — Register on MCP tool directories
## Problem
Edict is not listed on [Smithery](https://smithery.ai), one of the largest MCP server registries.
## How to Publish
Smithery supports publishing via CLI:
```bash
npx @smithery/cli mcp publish --name @Sowiedu/edict --transport stdio
Alternatively, publish via URL if the server is hosted:
smithery mcp publish <url> -n @Sowiedu/edict
Smithery will scan the server for metadata (tools, prompts, resources)
Read the thread · 2026-03-18 · closed · 0 comments
types: replace as never casts in QuickJS with discriminated union result type
Summary
Replaced as never casts in QuickJS with discriminated union result type.
Changes
src/check-browser.ts: ConvertedCheckBrowserResultfrom a single interface to a discriminated union (CheckBrowserSuccess | CheckBrowserFailure) keyed onok. All error-path returns now includemodule: null,typeInfo: null,diagnostics: [].src/quickjs/edict-quickjs.ts: Removed all 3as nevercasts. Uses newquickjsRuntimeError()constructor.- **`src/browser-full.ts
Read the thread · 2026-03-16 · closed · 0 comments
perf: cache buildAgentGuide() result in handleSchema("agent")
Problem
buildAgentGuide() is a pure function that produces static content, yet it's called on every invocation of:
handleSchema("agent")(inhandlers.ts:181)handleExamples()→handleSchema("agent")(inhandlers.ts:206)
The minimal schema is already cached via cachedMinimalSchema, but the outer combined object — including the buildAgentGuide() result — is reconstructed every time.
Fix
Cache the full agent schema result alongside cachedMinimalSchema:
[Read the thread](https://github.com/Sowiedu/Edict/issues/188) · 2026-03-16 · closed · 1 comment
### test: add `guideResource` handler test (50% → 100% coverage)
## Problem
`src/mcp/resources/guide.ts` has **50% statement coverage** and **0% function coverage**. No dedicated test file exists. The `guideResource` handler wraps `buildAgentGuide()` into an MCP resource response, but this wrapper is never tested directly.
## Fix
Create `tests/mcp/guide-resource.test.ts` that:
1. Imports `guideResource` from `../../src/mcp/resources/guide.js`
2. Calls `guideResource.handler()`
3. Asserts the response has `contents[0].uri === "edict://guide"`
4. Asserts `c
[Read the thread](https://github.com/Sowiedu/Edict/issues/187) · 2026-03-16 · closed · 1 comment
### test: add `invokeTool.handler` wrapper test (25% → 100% coverage)
## Problem
`src/mcp/tools/invoke.ts` has **25% statement coverage**. The handler function (`handleInvoke`) is well-tested in `tests/mcp/invoke.test.ts`, but the MCP tool wrapper (`invokeTool.handler`) — which serializes the result to JSON and sets `isError` — is never exercised.
**Uncovered lines**: 16-18 (the `handler` function body)
## Fix
Add a test in `tests/mcp/invoke.test.ts` that:
1. Imports `invokeTool` from `../../src/mcp/tools/invoke.js`
2. Calls `invokeTool.handler({ url, ... })`
[Read the thread](https://github.com/Sowiedu/Edict/issues/186) · 2026-03-16 · closed · 1 comment
### Create agent system prompt / bootstrap guide for MCP-first onboarding
Implemented in b493a14.\n\n**Delivery:**\n- MCP `instructions` field on server init with bootstrap workflow hint\n- `edict://guide` MCP resource with full structured guide\n- `guide` field embedded in `edict_schema(format: \"agent\")` response\n\n**Guide contents:** `whatIsEdict`, `workflow`, `template` (hello-world), `rules`, `errorRecovery`, `builtins` (derived from registry), `toolReference` — all structured JSON, ~2K tokens.\n\n10 new tests, 2 updated tests, all 2348 passing.
[Read the thread](https://github.com/Sowiedu/Edict/issues/179) · 2026-03-14 · closed · 0 comments
### Bundle minimal schema snippet with `edict_examples` response
## Problem
LLMs consistently call `edict_schema` then `edict_examples` on turn 1, burning 2 rounds before writing any code. When stuck, they often re-fetch both, wasting another 2 rounds per retry.
## Current State
- `edict_schema(format: "agent")` already bundles minimal schema + compact maps + builtins + effects (~one-call bootstrap)
- `edict_examples` returns `{ count, examples }` with no schema context
- Agents need both to write correct programs — the schema for structure, the examples f
[Read the thread](https://github.com/Sowiedu/Edict/issues/175) · 2026-03-14 · closed · 1 comment
### Cloudflare deploy target and deployment documentation
## Parent Issue
Part of #78 (Compile → Deploy Pipeline)
## Scope
Wire up the Cloudflare deploy target in `edict_deploy`. When `target: "cloudflare"` is specified, the tool should use the existing CloudflareHostAdapter and worker scaffold generator to produce and deploy a Cloudflare Worker. Document how to configure deploy targets and the deploy target interface for extensibility.
## Acceptance Criteria
- [ ] Cloudflare deploy target works in `edict_deploy` (requires `CLOUDFLARE_API_TOKEN` en
[Read the thread](https://github.com/Sowiedu/Edict/issues/165) · 2026-03-13 · closed · 1 comment
### `edict_invoke` MCP tool for remote WASM service invocation
## Parent Issue
Part of #78 (Compile → Deploy Pipeline)
## Scope
Implement the `edict_invoke` MCP tool that invokes deployed Edict WASM services via HTTP. Given a URL and input, the tool sends a request to the deployed service and returns the structured result. This completes the deploy → invoke round-trip.
## Context
`edict_deploy` with `wasm_binary` target exists (#140, done). Agents can compile and package — but they currently can't invoke a deployed service through the MCP interface.
##
[Read the thread](https://github.com/Sowiedu/Edict/issues/158) · 2026-03-13 · closed · 0 comments
### Skill memory adapter with semantic retrieval and execution
## Parent Issue
Part of #79 (WASM as Crystallized Agent Memory)
## Scope
Build a reference implementation of an agent memory adapter that stores Edict skill packages and retrieves them by semantic search (name, description). Include skill execution from memory: load the stored WASM binary, run it, and return the result — bypassing LLM inference entirely.
## Context
The skill package format (#135) and MCP tools for packaging/invocation (#136) are done. This sub-issue builds the **memory integ
[Read the thread](https://github.com/Sowiedu/Edict/issues/157) · 2026-03-13 · closed · 1 comment
### Add `compileAndRun(ast)` convenience function
## Context — Calculator Benchmark
The agent's runner script follows a 4-step pipeline that will be identical for every Edict program:
```js
const v = validate(ast); // check structure
const c = check(ast); // resolve + typecheck + effects + contracts
const compiled = compile(ast); // generate WASM
const result = await run(compiled.wasm); // execute
Each step has different error-checking patterns, and getting these wrong cost the benchmark agent 2 rounds.
Proposed Change
Read the thread · 2026-03-12 · closed · 1 comment
The remaining reports are on the project's issue tracker.