AILANG Roadmap
This page is automatically generated from the design_docs/planned directory. Each item represents a planned feature or improvement with a detailed design document.
For completed features, see Design Documents.
Planned for v1.1.0
- Global Collaboration Hub - Cross-Computer Agent Collaboration
- M-AGENT-LOOP-ARCHITECTURE: Where Should the Multi-Turn Agent Loop Live?
- M-AGENT: std/agent Module for AI Agent Orchestration
- M-AGENT-SAFE-RUNNER: Turnkey Sandboxed Execution for AI-Authored AILANG Programs
- M-AI-EFFECT-MODES-FOLLOWUPS: Close the Loose Ends from v0.15.0 AI Modes
- M-CALL-SUGAR: Optional Parenthesized Call Syntax
- M-CSP-SESSION-TYPES: CSP Concurrency with Session Types
- M-D4: Design-Doc-Driven Development (D4)
- M-EFFECT-HANDLERS: User-Definable Effect Handlers
- M-ENTROPY: Semantic Entropy Budgets
- M-ERROR-PROP: Error Propagation Operator (
?) - M-EU-COMPLIANCE-EFFECTS: Regulatory Trigger Effects for Agentic Systems
- M-EVAL-FINETUNING-DATA-PIPELINE: Capture-to-QLoRA on the Local Rig
- M-EVAL-TRUST-SIGNALS: External Trust Signals for AILANG Eval Results
- M-FORALL-PROPERTIES: Direct-Core Evaluation for
properties [forall(...) => ...]Blocks - M-GAME-ENGINE-EFFECTS: the game engine as typed effects — Stapledon's Voyage revived as v1.1's flagship
- M-ORACLE-ADEQUACY: Convergence Oracles and Evidence Bundles for the Eval Harness
- M-PERF4: Bytecode Interpreter (Stretch Goal)
- M-PIPE-OPERATOR: Pipe operator and Option chaining
- M-PKG-INFLIGHT: Package-in-Flight Tracking for Registry Workflows
- M-PROCESS-MODES: Replay-Contract Modes for the Process Effect
- M-QUASI: Typed Quasiquotes (String Templates)
- Type-Anchored Defaultable Record Fields
- M-REFLECT: Structural Reflection & User-Defined Type Classes
- M-TRACE-FEEDBACK: Execution-Trace Feedback Loop for Harness Diagnostics
- M-ZERO-LANGUAGE-LEARNINGS: Borrowed Ideas from Vercel Labs' Zero
Planned for v1.0.0
- Sprint Plan: M-BYTECODE-PATTERN-ARITY-FIX
- M-BYTECODE-PATTERN-ARITY-FIX — fixed-length list patterns match longer lists under
--bytecode(silent wrong result) - M-BYTECODE-VM-PARITY-BUGS — Three VM soundness bugs surfaced as "output divergences" (Lanes A + B, scope FROZEN)
- M-DIALECT-KEYWORD-DIAGNOSTICS: Diagnose the Observed
caseTrap - M-EFFECT-CLOCK-NET-FS-MODES: Port Clock, Net, FS to Parameterised Modes
- M-EFFECT-REFINEMENT: Parameterised Effects and Unified Replay Contracts
- Sprint Plan: M-EFFECT-REPLAY-SUBSUMPTION
- M-EFFECT-SCOPE-PARAMS: Capability-Scoping Parameters on Effects
- Sprint Plan — M-MISSION-SLOT-HEARTBEAT
- M-MISSION-SLOT-HEARTBEAT: Per-Gate Heartbeat for Mission Slot Death Attribution
- Sprint Plan: M-NIGHTLY-RUN-VALIDITY-GATE
- Sprint Plan: M-NIGHTLY-SUSTAINED-FAILURE-LABEL
- Sprint Plan: M-NIGHTLY-UNMEASURED-CATEGORY-GATE
Planned for v0.57.2
Planned for v0.57.1
- AI Cross-Provider Per-Call Routing +
callImageBase64Result - Sprint Plan: M-DX-EFFECTFUL-CALLBACK-DIAGNOSTIC
- M-DX-EFFECTFUL-CALLBACK-DIAGNOSTIC: effectful lambda passed to
std/listmap— diagnostic blames the import, not the effect - Deterministic Interface Digests for Exported Type Schemes (#2076)
- M-IFC-RECURSIVE-LAMBDA-FOLD: finite summaries for lambdas that reach themselves through recursion
- Persistent Semantic Store: SharedMem/SharedIndex SQLite Backends + std/ai.embed
- M-PROPERTY-OUT-OF-CONTRACT-VACUITY: honest discard counters and a non-green rule for properties that never ran an in-contract case
- Sprint Plan: M-SERVE-API-TYPED-ARG-BINDER
- M-SERVE-API-TYPED-ARG-BINDER: One Declared-Type Argument Binder for MCP, A2A, and REST
- Sprint Plan: M-STD-JSONSCHEMA
- M-STD-JSONSCHEMA: validate a Json against a JSON Schema (Draft 2020-12) in the stdlib
- Unbound Type Names in Annotations Must Be Compile Errors (m-unbound-type-names)
Planned for v0.56.2
- M-PROCESS-EXEC-PARENT-LIFETIME: host shutdown reaches the synchronous
Process.execchild - M-TYPECHECK-ENV-SCAN-COST: stop re-walking the whole type environment on every application
- Sprint Plan: M-TYPECHECK-ENV-SCAN-COST
Planned for v0.56.1
- Sprint Plan: M-VALIDATOR-CHECK-BUDGET-PARITY
- M-VALIDATOR-CHECK-BUDGET-PARITY: check budgets follow the box, and refusals a publisher can reproduce
Planned for v0.56.0
- Sprint Plan: M-PKG-SMOKE-STAGED-LOCK
- M-PKG-SMOKE-STAGED-LOCK executor validation
- M-SMT-PREFLIGHT-M0-REPAIR implementation evidence
- Sprint plan: M-SMT-PREFLIGHT-M0-REPAIR
Planned for v0.55.0
- M-AILANG-EXECUTOR-GE: the ailang_only executors, reachable from Gemini Enterprise over MCP and A2A
- Sprint Plan: M-AILANG-LANE-EXECUTOR-SHADOW
- Executor shadowing for AILANG-lane tasks
- crew-core cold compile: #1811 fix verification, residual time, and workaround retirement
- M-EVAL-AILANG-ADVANTAGE: A Long-Running Program to Measure, and Then Earn, Where AILANG Beats Python for AI Authors
- M-EVAL-HIDDEN-TESTS: Held-Out Tests and a Per-Benchmark Exec Timeout
- M-IMPORT-ALIAS-COLLISION: two selective imports of the same type name are a loud coded error, not last-import-wins
- M-INT-OVERFLOW-TRAP-AND-BIGINT: integer overflow fails loudly; exact big integers are a library
- M-PERSISTENT-COLLECTIONS: Collections That Are Cheap to Update (Set, structured keys, batch accumulate, persistent Map/Array)
- Bounded product tests for the v0.54.18→dev Sonar new-coverage window
- M-VM-COVERAGE: Close the four gaps that keep model-written AILANG off the bytecode VM
- M-VM-QUICK-WINS Sprint Plan: Phases 0–1 (runtime-only)
- M-VM-QUICK-WINS: Cheap bytecode-VM speedups, measured one at a time
Planned for v0.54.20
Planned for v0.54.19
- Sprint Plan: M-PKG-AUTHORITY-CHOKEPOINT (#1720)
- M-PKG-AUTHORITY-CHOKEPOINT: route every package network and
$HOMEwrite through one confinement gate, and make a bypass fail a test
Planned for v0.54.17
- M-NAMED-TEST-CONS-ROUNDTRIP:
::in named-test and property bodies must survive the harness re-parse - Sprint Plan: M-WORKER-PTY-PIDFILE-ACK
- M-WORKER-PTY-PIDFILE-ACK: complete-PID startup acknowledgement for the worker PTY lifecycle test
Planned for v0.54.13
Planned for v0.54.12
- Examples Manifest Statistics Sync — Sprint Plan
- Examples Manifest Statistics Sync — close the stale-stats and unmanifested-example holes
Planned for v0.54.8
- Sprint Plan: M-CROSS-RUN-CONTENT-LIBRARY
- Cross-Run Content Library: Persistent SharedMem/SharedIndex + std/ai.embed
- Sprint Plan: M-OLLAMA-EMBED-RESULT-AI-EFFECT
- M-OLLAMA-EMBED-RESULT-AI-EFFECT
Planned for v0.54.7
- M-PKG-SMOKE-STAGED-LOCK: stage the published view (manifest + lock) for the temp-dir smoke
- Sprint Plan: spawnProcessResult
- spawnProcessResult: a Result-returning process spawn
Planned for v0.53.1
- Sprint Plan: M-BYTECODE-STRICT-256-REG-CEILING
- M-BYTECODE-STRICT-256-REG-CEILING — strict-VM register-pressure failures are silent until RUN time: >256-element list literals and if/else-if chains over wide records become
evaluator-onlywith no compile-time,check-time, or non-strict-run warning - Property Domain Parity: requires-filtered forall properties, named failing inputs, attested-run agreement
Planned for v0.53.0
- AILANG Parse positioning as a Claude / ChatGPT connector
- M-EFFECT-LATENT-FUNCTION-VALUES sprint plan
- M-EFFECT-LATENT-FUNCTION-VALUES execution validation
- #1771 narrow encoded-artifact evidence audit
- #1771 independent M1-M2 evaluation
- #1771 M1–M2 repair validation
- Sprint Plan: M-IFC-CROSS-MODULE
- Sprint Plan: Inline-test expected values
- Sprint plan: M-MCP-FILE-HANDOFF
- M-MCP-FILE-HANDOFF — a user's uploaded file reaches a remote MCP tool
- Sprint Plan: M-MCP-FILES-FRICTION (Refs #1618)
- M-MCP-FILES-FRICTION — routing and decisions for the sunholo/mcp_files 0.1.0 friction grab-bag (Refs #1618)
- Sprint Plan: M-NAMED-TEST-EFFECTFUL-HELPER
- Named Test Effectful Helper Honesty (strip policy + truthful diagnostics)
- Sprint Plan: M-PURE-ROW-AND-IFACE-PURITY
- M-PURE-ROW-AND-IFACE-PURITY —
puremust mean! {}: reject the keyword beside a declared effect row, and derive iface purity from the checked row - M-TEST-RUNNER-COMPILE-ONCE:
ailang testcompiles a test file once, not once per named test - M-VM-LIST-TAIL-SHARE — residual sprint plan
- M-VM-LIST-TAIL-SHARE: O(1) list-tail binding on the bytecode VM (cons-pattern walks are O(n²))
Planned for v0.52.6
- M-AUTO-MERGE-CODE-PRS implementation
- Sprint Plan: M-AUTO-MERGE-CODE-PRS
- Per-Agent Auto-Merge for Code PRs (check-gated, non-author approver)
- M-CODEX-OAUTH-PROFILES sprint
- M-CODEX-SUBSCRIPTION-LANE Phase 1 report
- Sprint Plan: M-CODEX-SUBSCRIPTION-LANE
- M-CODEX-SUBSCRIPTION-LANE:
codex*fails loud now, a boundedchatgpt/client, and acodex exec --jsonAI-effect provider to replace the direct backend - M-EXECUTOR-CREDENTIAL-REPOS: Read-Only Child Git Credentials for Named Extra Repositories
- Sprint Plan: M-FS-DENY-WRITE-DIR-RENAME
- M-FS-DENY-WRITE-DIR-RENAME: Deny patterns must protect their ancestor directories
- Sprint Plan: M-MCPHTTP-TYPED-HOST-ERRORS
- M-MCPHTTP-TYPED-HOST-ERRORS: a host can return a typed JSON-RPC error from Invoke (#1602)
- Sprint Plan: M-PKG-REGISTRY-CONFINEMENT
- M-PKG-REGISTRY-CONFINEMENT: a policy-confined agent cannot fetch from the registry, write the registry cache, or have its planted copy trusted — and hosts get a read-only package root
- Sprint Plan: M-SPRINT-LOC-NULL-SENTINEL
- Restricted worker compile-cache isolation: implementation
- Sprint Plan: Restricted worker compile-cache isolation
Planned for v0.52.4
- M-ALIAS-BODY-CLOSURE implementation evidence
- Sprint Plan: M-ALIAS-BODY-CLOSURE
- M-ALIAS-BODY-CLOSURE: interface alias bodies and schemes must be closed over their defining module
Planned for v0.52.2
Planned for v0.52.0
- Sprint Plan: M-IFC-DECLARED-RECORD-LABELS
- M-IFC-DECLARED-RECORD-LABELS — labels written inside a type are label sources
- Sprint Plan: M-IO-READLINE-EOF-OPTION
- M-IO-READLINE-EOF-OPTION —
readLineOpt() -> Option[string]: EOF isNone, not""
Planned for v0.51.2
- Sprint Plan: M-AI-CROSS-PROVIDER-PER-CALL-ROUTING
- M-AI-CROSS-PROVIDER-PER-CALL-ROUTING: per-call cross-provider routing for step()/image calls + Result-returning image base64
Planned for v0.51.0
- M-SERVEAPI-DIRECTORY-READY — file hand-off research (user upload → AILANG Parse MCP tool)
- Sources: m-serveapi-directory-ready
- Sprint Plan: M-SERVEAPI-DIRECTORY-READY, Phase A (Anthropic)
- Submission kit: AILANG Parse in the Claude and ChatGPT directories
- M-SERVEAPI-DIRECTORY-READY: any
serve-apiservice listable in the Anthropic and OpenAI directories
Planned for v0.50.0
Planned for v0.49.1
- M-EXECUTOR-ENV-HARDENING: A Typed Environment Boundary for the Agent Executor Fleet
- M-EXECUTOR-UID-SPLIT: Running the Agent CLI Under Its Own UID (Audit H-6)
Planned for v0.48.0
- M-EFFECT-LATENT-FUNCTION-VALUES — Charge the latent effects of function-valued arguments and record fields
- Sprint plan: M-SERVEAPI-SDK-FREE-MCP (#885)
- M-SERVEAPI-SDK-FREE-MCP: a stdlib-only MCP dispatcher inside
serveapi(#885)
Planned for v0.47.2
- M-BYTECODE-GETFIELD-SLOT-RESOLUTION — GET_FIELD compiles the wrong slot index when two record types share a field name at different positions (silent wrong reads under
--bytecode) - Sprint Plan: M-VM-DETERMINISM
- M-VM-DETERMINISM: Bytecode VM nondeterminism — Go map iteration order selects record types/field indices at compile time
Planned for v0.47.1
- Sprint Plan: M-PKG-REGISTRY-DISCOVERABILITY
- M-PKG-REGISTRY-DISCOVERABILITY — the registry as the first stop
Planned for v0.44.0
- M-CASCADE-ENVELOPE-HYDRATION: close the inbox→task cascade envelope-loss routes
- M-SERVER-ORIGIN-POLICY:
ailang serverbecomes same-origin by default, and its WebSocket checks Origin - Sprint plan: M-STDLIB-ROOT-RESOLUTION
- M-STDLIB-ROOT-RESOLUTION: one stdlib root for every command (
ailang docs std/<module>fails outside a project root) - M-TYPE-NAME-SHADOW: a module's own type must win, and the compile cache must see alias edits
Planned for v0.42.1
- M-DANEEL-DEEP-RESEARCH — the daneel-executor holds
sunholo/gemini_agents(Google Deep Research on the ailang_only lane) - M-PUBLISH-PATH-DEP-SMOKE: make the publish gate tell the truth about path dependencies
Planned for v0.41.3
Planned for v0.40.0
Planned for v0.39.2
Planned for v0.39.1
- Sprint Plan — M-CHAINS-EXECUTOR-TRANSCRIPTS
- M-CHAINS-EXECUTOR-TRANSCRIPTS — Executor transcripts into
ailang chains chat(pi, codex, opencode — cloud and rig)
Planned for v0.38.6
- M-CLI-MSG-HANDLER: CLI Runtime Msg Effect Handler
- Sprint Plan: M-SMT-DATETIME — Exact UTC Day Arithmetic in Z3
Planned for v0.38.0
- Sprint Plan: M-OPENROUTER-EU-ROUTING
- M-OPENROUTER-EU-ROUTING: EU In-Region Routing for All OpenRouter Eval Endpoints
- M-SMT-STRING-CASEFOLD-AND-CHARFOLD: Verify
toUpper/toLowerandfoldCharsin contracts
Planned for v0.36.0
- Sprint Plan: m-autopush-gate-followups
- Sprint Plan: M-CACHE-MODULE-ID-ENCODING
- M-CACHE-MODULE-ID-ENCODING — replace
sanitizeModuleID's broken, non-injective mapping - SPRINT PLAN — M-COORDINATOR-WINDOWS-PACKAGE-TIMEOUT-HEADROOM
- M-COORDINATOR-WINDOWS-PACKAGE-TIMEOUT-HEADROOM: A Derived
-timeoutBudget and a Per-Package Headroom Instrument - M-GATE1-SHARED-CLONE-REF-DRIFT Sprint Plan — post-split recovery
- M-GATE1-SHARED-CLONE-REF-DRIFT: A shared
.gitmakesorigin/deva moving floor, so every gate that reads it must record what it read, when - Sprint Plan: M-MISSION-COMMS Phase 1 (Go half only)
- M-MISSION-COMMS-INTO-THE-BINARY: Decisions Are Issues, Reports Are Links, Telemetry Leaves the Thread
- Sprint Plan: M-MISSION-LOOP-WORKBENCH — Phase 1
- M-MISSION-LOOP-WORKBENCH: One Registry, Generated Artifacts, and a Command That Answers "Does This Reach Mission X?"
- M-STATE-DISK-RETENTION: Bounded On-Disk State and a
ailang diskCommand - M-TRACE-LABEL-AWARE: the tracer is below the type system, so IFC labels do not reach it
- M-TRACE-TIER-NOT-ENFORCED: the tracing tier is resolved, printed, and then ignored
Planned for v0.35.3
- Sprint Plan: M-EFFECT-PURE-ROW-OVERGENERALIZATION
- M-EFFECT-PURE-ROW-OVERGENERALIZATION — a
pure funcmust not export an effect-polymorphic row
Planned for v0.35.2
- Sprint Plan: M-CACHESRC-COGNITIVE-COMPLEXITY
- M-CACHESRC-COGNITIVE-COMPLEXITY — extract compile-cache orchestration and preserve its regression oracles
- Sprint Plan — M-LAUNCHD-NOTIFY-SUBSHELL-OBSERVATION (V1 mission iteration 347)
- M-LAUNCHD-NOTIFY-SUBSHELL-OBSERVATION: Restore Notification Test Observability and Bound Production Notification Calls
- M-PI-RUNNER-WORKTREE-ASSERTION-VACUOUS-ON-REVISION — replace the post-run dirty-worktree count with a bounded per-invocation content delta
- M-UNROUTABLE-INBOX-VISIBILITY: Unroutable sends must be surfaced, not stored silently
Planned for v0.35.0
- M-COORD-CLI-SHARED-STORE: control-plane commands must operate on the daemon's actual store
- M-COORD-DISPATCH-INTEGRITY: accept-then-work, dedup, and no silent handoffs
- M-COORDINATOR-CHILD-ENV-OPENCODE-RETRY-STORM-RECOVERY: coherent routes, OpenCode-local pinning, generation-and-attempt-fenced dispatch
- Recovery Plan: M-COORDINATOR-CHILD-ENV-OPENCODE-RETRY-STORM
- Iteration 309 — SPRINT-PLANNER disposition plan
- M-COORDINATOR-ROUTE-AUTHORITY-RECOVERY: narrowed recovery — M1 route authority + M2a OpenCode child preflight
- M-DX-LONG-SESSION — long-run context resilience: compaction-loop guard, sticky evidence store, late-session tool re-injection
- Sprint Plan: M-DX-MICRORAG-CONTEXT — μRAG as a first-class pi extension
- M-DX-MICRORAG-CONTEXT — μRAG as a first-class pi extension: retrieval-triggered context injection + search tool
- Sprint Plan: M-DX-QUALITY-MONITOR — empty/looping-output detection + bounded excerpts
- M-DX-QUALITY-MONITOR — empty/looping-output detection with corrective steering + bounded tool-result excerpts
- Sprint Plan: M-DX-SESSION-GATE — mechanical session-protocol gate for pi
- M-DX-SESSION-PROTOCOL-GATE — mechanical enforcement of the session protocol for pi sessions
- Sprint Plan: M-EVAL-ROLLING-ELO
- M-EVAL-ROLLING-ELO: one anchored rating series across models and AILANG versions
- Sprint Plan —
m-fmt-unpinned-hunks(iteration 288) - Sprint Plan: M-FS-RENAME — std/fs rename/move (atomic file publish)
- M-FS-RENAME — std/fs rename/move: atomic file publish for pure AILANG
- Sprint Plan: M-GIT-BINARY-RESOLUTION-SWEEP
- M-GIT-BINARY-RESOLUTION-SWEEP: One Absolute-Path Git Resolver for All 93 Exec Sites
- Sprint Plan: M-MODEL-REGISTRY-SINGLE-SOURCE
- M-MODEL-REGISTRY-SINGLE-SOURCE: models.yml becomes the one place models are assigned
- M-PARTIAL-ACCESSOR-SHAPE — total accessors, honest denominators, self-describing docs
- M-PKG-DETERMINISTIC-LOCKFILE: ailang.lock as a Pure Function of Its Inputs
- Sprint Plan — M-REGISTRY-INTERFACE-HASH-BLIND-TO-SIGNATURES
- M-REGISTRY-INTERFACE-HASH-BLIND-TO-SIGNATURES
- m unified release model
- M-ZAI-WINDOW-ROUTING: Time-Window-Aware Model Routing (z.ai GLM Coding Plan)
Planned for v0.33.2
- M-COVERAGE-CROSS-PACKAGE-ATTRIBUTION: Should
make test-coverageadopt-coverpkg? - Sprint Plan: M-TELEMETRY-REMOTE-READ-FASTFOLLOW
Planned for v0.33.1
- M-EVAL-STANDARD-MODE-INPUT-FILES-GAP: gate multi-file grading benchmarks out of standard mode
- Sprint Plan —
m-named-test-assert-lowering(maketest "…" { assert … }execute) - m-named-test-body-check-semantics — every expression in a pure named test body is a check (#604)
- Sprint Plan — M-NET-EFFECT-PROXY-BOUNDARY
- m-net-effect-proxy-boundary — bring AILANG's Net effect inside the egress boundary (D5 Option B)
- M-TYPECLASS-INT-FRACTIONAL-DICTIONARY-GAP: catch missing Fractional[Int] at compile time
Planned for v0.31.0
- M-AI-STRUCTURED-STEP — Sprint Plan
- M-AI-STRUCTURED-STEP — Structured output as an orthogonal option on
step - M-COMMENTS-FOR-AI-AUTHORS: measured comment semantics for an AI-first language — style guidance, first-class doc-comments, contracts-as-documentation
- M-DECISION-ENTROPY-MONITOR — Per-Step Decision-Weight Grading for AI Code-Generation Monitoring
- M-EVAL-EXPERIMENT-REGISTRY: Preregistration You Can Execute
- M-EVAL-FMT-WEAKMODEL-AB — M6:
motoko_ext_fmt, a profile-scoped AILANG extension - M-EVAL-KIMI-K3-AGENTIC: onboard Kimi K3 as an agentic suite model (OpenRouter × motoko/pi harnesses)
- M-FMT-DETERMINISTIC-FEEDBACK:
motoko_ext_fmtTeaches, Instead of Tidying in Secret - M-MANAGED-AGENTS-MODEL-EVAL — Managed Agents as a Gemini agent-mode eval vessel
- M-MCP-2026-07-28: Adopt the stateless MCP spec (go-sdk v1.6.1 → v1.7.0) without breaking our own client
- M-MEM-BUDGET-RUNTIME: Memory as a Budgeted Resource in the AILANG Runtime
- Sprint Plan —
m-strip-decl-aware(declaration-aware source stripping ininternal/testing)
Planned for v0.30.0
- M-ARCH-BOUNDARIES-EVAL-EXCLUSION-TIGHTEN: scope the
evalbridge exception file-level - M-DIAG-PRIMITIVE-FIELD-SUGGESTIONS: Symbol-Specific Enrichment of the Primitive-Field-Access Diagnostic
- M-PARMAP-EFFECTFUL: Concurrent Map over Effectful Functions (
parMap/gather) - M-PARSER-BLOCK-LET-SEPARATOR: Consistent statement-separator handling after block-RHS
let
Planned for v0.29.0
- m agent step cancellation
- M-AILANG-SEMANTIC-CONTEXT: Typed, Semantic Context Minimization for the Agent Loop
- M-ANTHROPIC-SANDBOX: Anthropic Self-Hosted Sandbox Executor
- M-APPLE-CONTAINER-LOCAL-EVAL-SANDBOX
- M-BUDGET-SCOPING-BUG — Sprint Plan
- M-CASCADE-OBSERVABILITY: Surface Cascade AI Conversation History
- M-CONCURRENCY-LEVERAGE: Leverage Fork() Across All Execution Modes
- Sprint Plan: M-DEONTIC-PKG — sunholo/deontic extension package
- M-CONTRACTS-AS-CODE: The Verified Deontic Engine — AILANG's Flagship Vertical Example
- M-COORD-THINKING: Extended Thinking Levels for Coordinator Skills
- M-DX27: GitHub Repository Search Fallback for
ailang docs search - M-EVAL-OPENROUTER-BASELINE-ROTATION: Cloud Baseline Three Candidate Models
- M-EVAL-RESULTS-FOLDER-STRUCTURE: Model-First Eval Results Layout
- M-EVAL-SLIM-PROMPT-SELF-DISCOVERY
- M-EVAL-STREAM-HEALTH-RETRY: Mid-stream death detection + fast retry for the streaming executor
- Sprint Plan: M-MOTOKO-EXT-PER-TASK
- M-MOTOKO-EXT-PER-TASK: Per-Invocation motoko Extension Configuration
- m pure prng
- M-SERVE-API-LIVE-TOOL-REGISTRY: Live Tool Registry for Agentic Sessions
- m stdlib html streaming
Planned for docparse-billing
- DX Improvements Discovered During Billing Package Creation
- M-BILLING: DocParse Billing and Agent-Assisted Payment
- M-BILLING: DocParse Responsibility
- M-BILLING: ailang-multivac Responsibility
- M-BILLING: ailang-packages Responsibility
Planned for ailang-core-triage
- Cancellable provider context for the AI effect: one enabler for #231 (abort a step) and #578 (AIHandler v2)
- std/ai single-shot calls carry no HTTP deadline; named-test round-trip breaks on integral float literals (and brace-bearing strings, via the stripper)
- ailang check on a package file alone fails MOD010; path-dep syntax "undocumented"
ailang run -ai claude-opus-5can never use the Claude OAuth credential the factory already knows how to read- Cascade routing: unpopulated cascade directive (task-dc0edc0a)
- Chains: no PR linkage, no PR-driven status, no title; attended sessions never become chains; interspersed --remote silently dropped
- CLI: flags after the positional argument are silently dropped, across most
flag.NewFlagSetsubcommands (#534, #1383) - Compile cache not invalidated when a PATH dependency's interface changes
- Coordinator pushes/reports the wrong ref: completion names files on an empty
coordinator/task-*branch while the work sits on the agent's owndesign-doc/*branch - Coordinator: enable auto-merge on design-doc PRs (docs-only paths)
- Coordinator HTTP routes: mark message read/unread, read one message, forward
- Compile cache rejects motoko
session.ail: CoreTypeInfo blob grew past the 64 MiB ceiling (~2 min recompile on every motoko start) - Cross-file property generators never run (world/core World/Evidence) — and the ADT half is already landed
- Daemon goes silent after its own binary is rebuilt; dead subscription indistinguishable from idle
- Daemon re-stalls ~2 min after clean start; dead subscription indistinguishable from idle
- std/clock & std/datetime: prompt and one guide say "seconds", implementation is milliseconds
- design-doc-creator hard-codes the ailang repo's mission-log path, breaking the daneel repo's proven docs-only gate and auto-merge scope
- D4: docparse Dockerfile — bump the ailang pin and add
--max-memory cgroupto the serve-api CMD ailang docsreads a stale stdlib root silently — no version-mismatch warning likerun- Correction to dogfood logreg report — std/embedding already has dot/scale/add_vectors; the narrow ask (native ops) is already shipped
- Duplicate top-level func definitions in one module silently overwrite (MOD007 gap)
- Effect checker resolves let-bound lambda to top-level function of same name
- Effectful callback passed to std/list
map: error blames the import collision, not the effect - Feedback gate classifier → sunholo/decisions (shadow first, then switch)
- Forall property blocks fail to lower — #624 / M-M3-RESIDUAL T6
- Gemini Vertex client cannot enforce region: global host accepts any location segment
- IFC: labelled field of a declared record type loses its label at field access (#1523, dup #1527)
- IFC Label Refinements Lost Across Module Boundaries (Daneel, v0.36.0)
- Imported-type property generator skips (std/json Json) misclassified as vacuous
ailang testrecompiles the whole module twice per inline test case — #1328's 24x slowdown is 82 full compiles of session.ail- Integer division by zero is a raw Go panic, not a structured error (#1449, dup #1528)
- Issue #1137 severity correction — process-allowlist downgrade to improvement
std/json.getIntsilently truncates non-integral JSON numbers- Local dependency override (Go-style
replace) for development vs registry resolution - M-PROCESS-RESULT-SEMANTICS: explicit start / completion / truncation semantics for
std/process.exec - Five friction points + serve-api CORS gap from sunholo/mcp_files 0.1.0 (M-MCP-FILE-HANDOFF F2)
messages sendsilently stores unknown flags as the message body- Named-test bodies fail float comparisons — missing Fractional dictionary in lowered path
- Native terminal input for pure AILANG TUIs
- Nightly-eval holds the rig lock all night — widen the yield ask from os-rotation-filler to nightly-eval
pkg qualityhides smoke output; smoke staging silently drops non-assets/data files- Per-subcommand process allowlist requested (git push --force leak in Daneel's audit trail)
- PUB012 reads inline-tested packages as testless — interim: distinguish "not discoverable" from "absent"
pure funcis not checked against its declared effect row, and iface purity is a hard-codedtrue(#1443)- Registry validator over-matches
name:fields as advertised tool names (daneel_ext_help publish rejected) - Rig binary rebuild+reinstall deferred to attended session — not executable from the triage agent
- Rig: ssa_constant_fold splits harnesses on the same local model (pi 7/7, opencode 1/8)
- @route response headers cannot express hyphenated header names (X-Frame-Options etc.)
run --policy: a confined program can forge the supervisor'spolicy-result:line (#1548)run --policy: the restricted worker dropsAILANG_CACHE_DIR— the compile cache lands insidefs_sandbox- Policy-supervised worker survives successful parent cancellation
- serve-api Net reaches localhost + cloud metadata on every call, redirect hops included (#1522)
- serve-api silently coexists with coordinator on 127.0.0.1:8765; requests split between listeners
- serve-api --static sends no security headers — OAuth consent pages are framable (clickjacking)
- serve-api: MCP tools/call binds every JSON number as float64 — int params always fail ("expected float arguments")
- ailang#885 — serveapi/protocol has no SDK-free MCP JSON-RPC dispatch (World 1.0 blocker)
showfrom string interpolation inside requires/ensures clauses is not encoded — ShowNormalizer misses contract exprs- check-file-sizes and check-boundaries are blind outside internal/ and cmd/
- SMT-encode pure dt* datetime builtins (addDays/startOfDay/weekday) for verify
- std/jsonschema — validate a Json against a JSON Schema (Draft 2020-12)
- std/json number-accessor naming, and the unwritten Result-vs-Option rule
ailang storage statusignores AILANG_MESSAGES_PROJECT and names the wrong project for the messaging store- Effect checker charges a stored (never-called) lambda's effects to the enclosing function
- Task input attachments + image-returning read so a plane agent can see images
ailang testevaluates through a hand-built evaluator env that diverges fromailang run— mis-wired closures across module paths- An undeclared type name in a signature becomes an opaque
TConand checks clean (#1485) - v0.47.0 follow-ups:
show()silently truncates into "valid-looking" output; float-vector ingest past the JSON boundary;ailang docsskips the stdlib version warning; darwin release binary SIGKILLs after copy - verify: callee
requiresnever discharged at call sites (inlined-body verification is unsound) - verify: VERIFIED not refutable when ensures calls a user function (asymmetric SMT gating)
- Z3 HOF inlining is unreachable behind the callee-sort gate, and still hard-codes
(Seq Int)underneath (#1375, #215) - verify: proofs reason over Z3 unbounded Int but the runtime int is wrapping int64 — VERIFIED then garbage at runtime
verify/ai-checkhave a per-function Z3 bound but no total-run budget (#513)- WASM type-check budget is still wall-clock by default — the deterministic step ceiling (#662 ask 2) has no design doc
- std/yaml decode loses mapping key order; reserved words with/recv; no yaml encode
Long-term Vision
AILANG is designed as a deterministic language for autonomous AI code synthesis. The long-term roadmap includes:
- Structural Reflection - Typed quasiquotes and AST manipulation
- Schema Registry - Machine-readable type and effect definitions
- Capability Budgets - Resource-bounded effects
- Training Data Export - Execution traces for AI self-training
For the complete vision, see Why AILANG and Vision.
Generated at build time. 346 planned features across 47 upcoming versions.