AI Native Lang

Changelog

Release notes, milestones, and updates to the AI Native Lang project.

1.8.0

April 26, 2026

AINL 1.8.0

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • feat(mcp · authoring): deterministic wizard in tooling/ainl_get_started.py with wizard_state_json continuity; new MCP tool ainl_step_examples; resource ainl://strict-valid-families backed by corpus/strict_valid_family_index.json (tooling/corpus_mining.py); ainl_validate · ainl_compile attach contract_validation_status and contract_alignment (mismatched_calls vs ADAPTER_CONTRACTS). Tests: tests/test_ainl_get_started.py, tests/test_mcp_server.py, tests/test_mcp_exposure_scoping.py.
  • feat(http): optional payment_profile (none/auto/x402/mpp) on SimpleHttpAdapter — structured 402 payment_required envelope + http_payment frame merges; settlement metadata on 200 when enabled; helpers in runtime/adapters/http_machine_payments.py. CLI --http-payment-profile, --http-max-payment-rounds; runner + MCP adapters.http keys; AINL_HTTP_PAYMENT_PROFILE · AINL_HTTP_MAX_PAYMENT_ROUNDS for OpenClaw monitor registry. Tests: tests/test_http_machine_payments.py, extended tests/test_http_adapter_contracts.py.
  • docs(integrations): docs/integrations/README.md (index); HTTP_MACHINE_PAYMENTS.md (x402/MPP + landscape + repo map); AGENTIC_PROTOCOLS_PRACTITIONER_READINESS.md (capability matrix + backlog); AGTP.md (gateway · MCP · adapter options); cross-links from AGENTS.md, README.md, SECURITY.md, examples/README.md, docs/EXAMPLE_SUPPORT_MATRIX.md.
  • docs: docs/operations/MCP_AINL_WIZARD_AND_CORPUS.md (hub); cross-links from AGENTS.md, docs/README.md, docs/DOCS_INDEX.md, examples/README.md, armaraos/docs/mcp-a2a.md, armaraos/docs/graph-memory.md; tooling/mcp_exposure_profiles.jsonainl_step_examples + ainl://strict-valid-families on design_impact_first, inspect_only, safe_workflow, full; validate_only includes ainl_step_examples without MCP resources.
  • test: refresh test_patch_a_valid_artifacts_fingerprint_lock golden hashes for opcode S core web fixtures (labels_sha256, emit_ir_json_sha256) after compiler IR shape drift — restores parser-compat · core-pr CI (open Dependabot PRs were failing the same gate).
  • test · tooling: drop duplicate a2a.GET · a2a.TASK_GET entries from ADAPTER_EFFECT (manifest verbs are discover, send, get_task only); align safe_workflow · full MCP exposure tool/resource lists with ALL_TOOL_NAMES · ALL_RESOURCE_URIS (includes ainl_step_examples); register 16 new examples/** paths in tooling/artifact_profiles.json (non-strict-only · legacy-compat so canonical curriculum stays unchanged); test_memory_search_missing_adapter_raises_descriptive uses host_adapter_denylist so auto AINLGraphMemoryBridge registration does not mask the missing-adapter path.
1.7.1

April 22, 2026

AINL 1.7.1

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • feat(adapter · a2a): opt-in runtime/adapters/a2a.pywire profile 1.0: GET …/.well-known/agent.json, JSON-RPC tasks/send · tasks/get; host allowlist (allow_hosts, empty list denies all), allow_insecure_local, optional strict_ssrf (DNS + block private/loopback/link-local unless local allowed), follow_redirects default off (on: re-check URL per hop). CLI: --a2a-allow-hosts, --a2a-allow-insecure-local, --a2a-strict-ssrf, --a2a-follow-redirects, --a2a-default-timeout, --enable-adapter a2a. Env: AINL_A2A_*, AINL_ADAPTERS. MCP · runner: adapters.enable + adapters.a2a; exposure profiles do not enable a2a by themselves — see tooling/mcp_exposure_profiles.json. Effect analysis: strict a2a.* in tooling/effect_analysis.py. Tests: tests/test_a2a_adapter.py, tests/test_a2a_adapter_integration.py (local HTTPServer; skips if bind fails). Example: examples/compact/a2a_delegate.ainl. Docs: docs/integrations/A2A_ADAPTER.md, ADAPTER_REGISTRY.json, registry/reference docs, SECURITY.md.

Known limitations (triage; full detail in A2A_ADAPTER)

  • TOCTOU — allowlist and DNS checks apply per request; targets can change between metadata fetch and work requests in adversarial conditions.
  • Empty allowlist — outbound a2a calls are denied; operators must set hosts explicitly.
  • IDNA · Unicode hosts — punycode and homoglyph risk; prefer explicit allowlisted hostnames.
1.7.0

April 14, 2026

AINL 1.7.0

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

All items below are commits on main since Git tag v1.6.0 (7b78f18release: v1.6.0 — GraphPatch notes, version surfaces, adapter registry), through 3af546c, unless noted.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.7.0 (mirrored tests/emits/server/runtime/engine.py); docs hub · skills · operations PyPI + docs pointers aligned for the v1.7.0 line (MINOR — bridge + inbox + vitals + emit surface).
  • feat(runtime+bundle) (eece265): pre-seed graph store on ainl run when a bundle · graph-memory path is active; persona hook wiring in the agent loop path (bundle + graph continuity).
  • docs (e3449fa, 8492a8a): ArmaraOS bundle env (AINL_BUNDLE_PATH, AINL_AGENT_ID), boot pre-seed, and chat persona vs JSON graph cross-links.
  • docs(release) (8dcf043): v1.6.0 GraphPatch release doc pass (changelog · release notes alignment — landed immediately after the v1.6.0 tag; included here for a complete post-tag audit trail).
  • fix(openclaw) (6a3b35b): intelligence/token_aware_startup_context.ainl — correct include paths and fs read wiring for bridge cron graphs.
  • feat(ainl_graph_memory) (f2e6372): read Rust AgentGraphSnapshot via AINL_GRAPH_MEMORY_ARMARAOS_EXPORT (and related export env) for Python-side import.
  • chore(demo) (c0a87c4): point demo/test_openspace_mcp.ainl at HTTP MCP execute_task (demo hygiene).
  • docs(ainl_graph_memory) (c03d897): document post-evolution ARMARAOS graph export refresh semantics.
  • fix(armaraos) (a2a2c78): accept Rust graph snapshot schema_version: "1" in the Python bridge (forward-compat with emitted packs).
  • feat(armaraos-emit) (0bb96b8): emit schema_version = "1" on HAND.toml [hand], shallow-copied IR JSON, and security.json (openfang-hands alignment).
  • fix(bridge) (5a88026): align ainl_graph_memory ArmaraOS export discovery with per-agent {agent}_graph_export.json · agent directory layout.
  • feat(ainl_graph_memory) (1e86f14): pre-seed non-persona graph nodes from .ainlbundle on boot() (bundle round-trip toward JSON graph store).
  • docs(prior-art) (04dbbe2): expand graph-memory timeline + implementation claims in PRIOR_ART.md.
  • feat(armaraos) (1300979): inbox sync for graph-memory mutations toward ainl_memory.db (Python writer + host drain contract).
  • feat(armaraos) (4ad914c): pre-seed monitor registry with bridge adapters (cron drift + graph tooling path).
  • feat(armaraos) (1092daa): unify monitor registry bootstrap + expose AdapterRegistry.get(name) publicly; RuntimeEngine graph-patch paths resolve ainl_graph_memory via adapters.get(...) (no private _adapters access).
  • feat(armaraos-bridge) (f1c4e62): inbox JSON schema (ainl_graph_memory_inbox_schema_v1.json), CI workflow coverage, sync envelope metadata (source_features, etc.).
  • docs (965b8d5, 843be1a, 1ed8ab2, a7dfb65, eeeede8): graph-memory inbox contract + vendored armaraos hub sync + bundle graph boot + adapters index + OpenClaw wrapper include · fs · If notes for bridge cron graphs + graph-as-memory blog · PRIOR_ART · adapter frontmatter cross-links.
  • feat(gap-k) (3af546c): CognitiveVitals round-trip on Python MemoryNode (vitals_gate, vitals_phase, vitals_trust); from_dict · to_dict; Rust snapshot import; inbox schema + tests/test_vitals_bridge.py.
  • chore: scripts/wrappers/supervisor_fixed.ainl — canonical R openclaw_memory append_today adapter form (wrapper hygiene).

April 13, 2026

Site + docs: graph-as-memory narrative

Published When Your AI Agent Actually Remembers: Introducing AINL’s Graph-as-Memory Architecture on the blog.

Cross-links and prior-art updates in the AI Native Lang and ArmaraOS repositories: PRIOR_ART.md, docs/adapters/AINL_GRAPH_MEMORY.md, docs/README.md, docs/adapters/README.md, armaraos/docs/graph-memory.md, crates/ainl-memory/README.md. Running npm run sync-content (with AINL_REPO_ROOT pointing at the AINL repo) refreshes synced docs under /docs, including AINL_GRAPH_MEMORY.

1.5.1

April 12, 2026

AINL 1.5.1

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.5.1 (mirrored tests/emits/server/runtime/engine.py).
  • feat(runtime): IR ops MemoryRecall and MemorySearch dispatch the ainl_graph_memory adapter from _exec_step and sync _run_label_graph; fallback adapter inference includes legacy steps and label graph nodes (_fallback_adapters_from_label_steps). Tests: tests/test_memory_recall_op.py.
  • bridge (ArmaraOS): JSON graph store + AINLGraphMemoryBridge (armaraos/bridge/ainl_graph_memory.py), registration and on_delegation hook in armaraos/bridge/runner.py, optional armaraos/bridge/graph_viz/ FastAPI viewer, demo/procedural_roundtrip_demo.py, demo/ainl_graph_memory_demo.py (stdlib walkthrough of episodic · semantic · procedural · persona nodes + JSON export; run from repo root), armaraos/bridge/bridge_token_budget_adapter.py importlib shim.
  • docs: new docs/adapters/AINL_GRAPH_MEMORY.md; cross-links from docs/adapters/MEMORY_CONTRACT.md, docs/adapters/README.md, docs/README.md, docs/DOCS_INDEX.md, docs/reference/README.md, docs/ARMARAOS_INTEGRATION.md ( AINL_GRAPH_MEMORY_PATH ), docs/RUNTIME_COMPILER_CONTRACT.md, docs/architecture/STATE_DISCIPLINE.md; hub · overview · skills · README.md “current release” lines aligned to v1.5.1.
  • tooling(docs): register ainl_graph_memory in tooling/adapter_manifest.json and ADAPTER_EFFECT (tooling/effect_analysis.py) with graph-node effect tiers; extend docs/reference/ADAPTER_REGISTRY.md, ADAPTER_REGISTRY.json, docs/GITHUB_RELEASE_CHECKLIST.md, docs/DOCS_MAINTENANCE.md, and docs/CONFORMANCE.md (strict-literals matrix callout).
1.5.2

April 12, 2026

AINL 1.5.2

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.5.2 (mirrored tests/emits/server/runtime/engine.py).
  • feat(memory · graph IR): optional memory_type on per-label R nodes for graph-memory · persona steps; memory.pattern_recall on the graph bridge + __last_pattern__ for memory.merge; per-label emit_edges (port: "data" · "emit") alongside required_emit_targets; tooling/graph_api helpers emit_edges, data_flow_edges, memory_nodes (label_* accept label id sequences). Docs: GRAPH_SCHEMA.md, GRAPH_INTROSPECTION.md, AINL_GRAPH_MEMORY.md, MEMORY_CONTRACT.md.
  • feat(compiler · runtime · bundle): graph-memory and persona adapter ops registered for strict validation (OP_REGISTRY, MODULE_ALIASES, ADAPTER_EFFECT, KNOWN_MODULES as applicable); persona.load with runtime frame injection (__persona__, persona_instruction); AINLBundle · AINLBundleBuilder in runtime/ainl_bundle.py for single .ainlbundle workflow + memory + persona + tools JSON round-trip.
  • feat(mcp): malformed workspace ainl_mcp_limits.json → successful ainl_run may include warnings; invalid non-empty workspace cache.json during MCP auto-registration → adapter_config_error with details.
  • feat(emit/armaraos): security.json includes capability_declarations.adapters; HAND.toml [hand] includes ainl_ir_version.
  • fix(runtime): enforce max_adapter_calls including 0 (no longer folded to “unset”); aligns with MCP/workspace limits and tests.
  • fix(profiles): local_minimal max_adapter_calls raised from 0 to 500 in tooling/security_profiles.json so the profile remains usable with the stricter adapter-call ceiling.
  • test: tests/test_mcp_frame_hints.py, tests/test_mcp_workspace_limits.py, tests/test_mcp_auto_cache_adapter.py, tests/test_emit_armaraos_handpack.py, tests/test_compact_opcode_ir_parity.py, tests/test_memory_search_op.py, tests/test_core_builtins_v143.py, persona · bundle · strict-contract suites — see docs/RELEASE_NOTES.md.
  • test(conftest): offline_llm_provider_config pytest fixture (deterministic offline LLM provider block for suites that opt in via pytestmark).
  • docs: docs/adapters/MEMORY_CONTRACT.md, docs/adapters/AINL_GRAPH_MEMORY.md, docs/architecture/GRAPH_INTROSPECTION.md, docs/RUNTIME_COMPILER_CONTRACT.md, docs/DOCS_INDEX.md, docs/adapters/README.md, docs/architecture/STATE_DISCIPLINE.md, docs/README.md, docs/RELEASE_NOTES.md, AGENTS.md, README.md, docs/operations/MCP_RESEARCH_CONTRACT.md, docs/ARMARAOS_INTEGRATION.md, docs/operations/CAPABILITY_GRANT_MODEL.md, hub · overview · skills — current-release pointers aligned to v1.5.2; WHITEPAPERDRAFT.md (v1.5.2, §6.8 graph-memory gap audit).
1.6.0

April 12, 2026

AINL 1.6.0

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.6.0 (mirrored tests/emits/server/runtime/engine.py).
  • feat(runtime · graph memory): R memory.patch installs procedural label bodies from ainl_graph_memory via adapters.call("ainl_graph_memory", "graph_patch", [memory_node_id, label_name], …); _reinstall_patches on engine boot; overwrite guard for compiled labels (OverwriteGuardErrorAinlRuntimeError); patch metadata (__patch_node_id__, __patch_version__, __fitness__) + finalize_patch declared reads; fitness EMA on label exit including early J returns; sync/async memory dispatch includes patch.
  • feat(compiler): strict-mode memory.patch literal guard (StrictModeError · strict_literals on AICodeCompiler); patch dataflow validation uses per-step _analyze_step_rw (aligns with compiler read analysis for string Set refs).
  • feat(tooling): ainl_graph_memory.MEMORY_PATCH in ADAPTER_EFFECT (tooling/effect_analysis.py).
  • fix(runtime): Loop/While inner locals renamed (body_lid) so inner graphs do not shadow body (patch fitness updates).
  • test: tests/test_graph_patch_op.py — eight pytest cases (step vs graph mode, frame $var, overwrite guard, re-patch versioning, boot reinstall + _reinstall_patches, fitness EMA, strict compile).
  • docs: docs/RELEASE_NOTES.md, docs/POST_RELEASE_ROADMAP.md, docs/RELEASING.md, ADAPTER_REGISTRY.json · docs/reference/ADAPTER_REGISTRY.md (memory_patch target for GraphPatch; runtime call target graph_patch), current-release pointers to v1.6.0 across hub and integration docs.
  • docs: docs/adapters/AINL_GRAPH_MEMORY.mdboot(), AINL_BUNDLE_PATH · AINL_AGENT_ID, scheduled ainl run bundle round-trip vs Rust ainl_memory.db chat [Persona traits active: …] hook; docs/ARMARAOS_INTEGRATION.md — env table rows + cron · chat split + armaraos docs/graph-memory.md; docs/INTELLIGENCE_PROGRAMS.md — stateful bundle.ainlbundle + armaraos doc links; AGENTS.md (ArmaraOS bullets).
1.4.6

April 11, 2026

AINL 1.4.6

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.6.
  • chore(demo): add demo/test_openspace_http.ainl — experimental HTTP probe for OpenSpace MCP (demo tree; not strict-valid).
  • chore: add apollo-x-bot/api-cost-monitor.ainl — sample promoter workflow for API-cost monitoring (uses shared modules/common includes).
  • chore: add run_openspace_test.py — portable dev harness for demo/test_openspace_mcp.ainl (repo-root-relative paths; OpenClaw adapter registry smoke).
1.4.5

April 10, 2026

AINL 1.4.5

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.5.
  • fix(tooling): ainl install-mcp --host armaraos — when name = "ainl" already exists in [[mcp_servers]], merge env pass-through (AINL_MCP_EXPOSURE_PROFILE, AINL_MCP_TOOLS, AINL_MCP_TOOLS_EXCLUDE, AINL_MCP_RESOURCES, AINL_MCP_RESOURCES_EXCLUDE) into the existing env = [...] line (sorted union) instead of only applying to newly appended blocks. ~/.openfang/config.toml receives the same merge. Tests in tests/test_install_mcp.py.
  • feat(mcp): scripts/ainl_mcp_server.py — register ainl://authoring-cheatsheet resource (short golden-path authoring guide aligned with AGENTS.md); process-local validate telemetry counters; validate/compile path improvements for MCP agent loops.
  • feat(compiler · diagnostics): Diagnostic supports optional contract_violation_reason for include failures; include diagnostics populate stable reasons; graph validation emits better line attribution (_graph_error_lineno, _emit_graph_validation_diagnostic).
  • fix(compiler strict): Targeted labels whose last step is Loop or While are skipped for the “exactly one J · must end in J” check (same exemption pattern as If-final labels). Fixes false strict failures for assembly-style pipelines.
  • test: tests/test_compiler_agent_suggested_fixes.py — coverage for suggested-fix kinds on common agent mistakes; tests/test_mcp_server.py extended for MCP surface changes.
  • docs: docs/operations/EFFICIENT_MODE_ARMARAOS_BRIDGE.md — clarifies ainl run --efficient-mode · AINL_EFFICIENT_MODE (env signal only), modules/efficient_styles.ainl (output density), vs ArmaraOS Rust input compression (see ArmaraOS docs/prompt-compression-efficient-mode.md).
1.5.0

April 10, 2026

AINL 1.5.0

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.5.0 (minor after 1.4.6).
  • docs(whitepaper): WHITEPAPERDRAFT.md — substantive pass for 1.5.0: runner default grants vs ainl_run adapter registration on MCP, host_security_env · capability-block metrics, ainl-validate hyperspace path, adapter and emission accuracy, include prelude; new §16–§18 (security · CI & assurance · LLM authoring contract); renumbered tail (§19–§22); §20.1 shipped-features parity; Appendix A pointers to docs/advanced/SAFE_USE_AND_THREAT_MODEL.md and AGENTS.md.
  • docs: repository-wide refresh — docs hub (docs/README.md), docs/DOCS_INDEX.md, docs/overview/README.md, docs/OPENCLAW_INTEGRATION.md, docs/CONTRIBUTING.md, root CONTRIBUTING.md, docs/operations/OPENCLAW_AINL_GOLD_STANDARD.md · docs/operations/README.md · docs/operations/HOST_PACK_OPENCLAW.md · docs/operations/EXTERNAL_ORCHESTRATION_GUIDE.md · docs/operations/OPENCLAW_REQUESTS_2_6_MAPPING.md, docs/competitive/README.md · docs/competitive/OVERVIEW.md, docs/openclaw/TOKEN_AWARE_STARTUP_CONTEXT.md, docs/POST_RELEASE_ROADMAP.md, docs/upstream/OPENCLAW_ISSUE_DRAFT_bootstrap_flag.md, docs/operations/MCP_RESEARCH_CONTRACT.md, docs/RELEASING.md, docs/QUICKSTART_OPENCLAW.md, docs/getting_started/HOST_MCP_INTEGRATIONS.md, docs/ZEROCLAW_INTEGRATION.md, docs/HERMES_INTEGRATION.md, docs/integrations/hermes-agent.md, docs/solana_quickstart.md, README.md, AGENTS.md, WHITEPAPERDRAFT.md — “current release” · PyPI pointers (and JSON samples where applicable) aligned to 1.5.0; skills/openclaw/README.md · SKILL.md, skills/ainl/README.md · SKILL.md, skills/hermes/README.md · SKILL.md — PyPI · host-briefing lines aligned to v1.5.0.
1.4.4

April 9, 2026

AINL 1.4.4

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.4.
  • fix(emit): emit_solana_client discoverability header interpolates RUNTIME_VERSION (was hard-coded v1.4.2).
  • test: Solana discoverability assertions use f"v{RUNTIME_VERSION}" instead of a pinned version string.
1.4.3

April 8, 2026

AINL 1.4.3

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • feat(mcp): ainl_run now accepts an optional adapters argument to enable scoped runtime adapters per call (sandboxed fs, host-allowlisted http, file-backed cache, optional sqlite) so agent workflows can do required I/O without asking end users to edit global config.
  • feat(builtins): CoreBuiltinAdapter (runtime/adapters/builtins.py) now implements the full set of verbs that were already present in the validator contract but missing at runtime: EQ, NEQ, GT, LT, GTE, LTE (comparisons); TRIM (collapse whitespace + strip), STRIP, LSTRIP, RSTRIP (edge whitespace); STARTSWITH, ENDSWITH (string predicates); KEYS, VALUES (dict introspection); STR, INT, FLOAT, BOOL (type coercions). All purely additive — no existing verb changed. These eliminate the common workarounds (CONCAT "" val for int→str coercion, cascading REPLACE for whitespace normalization, CONTAINS for equality checks).
  • feat(mcp): ainl_compile now returns frame_hints[] — a list of {name, type, source} entries describing variables the caller should supply via frame in ainl_run. Sources: explicit # frame: name: type comment lines (authoritative) and IR-inferred undeclared variables (heuristic).
  • feat(mcp): Per-workspace ainl_mcp_limits.json override — if <fs.root>/ainl_mcp_limits.json exists, its values are merged into caller limits before server ceiling enforcement. Enables workspace-specific limit tuning without editing global defaults.
  • feat(mcp): Auto-registered cache adapter — if fs is enabled and cache is not explicitly configured, the MCP server automatically registers cache when output/cache.json or cache.json exists in fs.root.
  • fix(limits): _SERVER_DEFAULT_LIMITS in scripts/runtime_runner_service.py raised to match MCP defaults (max_steps: 500000, max_depth: 500, max_adapter_calls: 50000, max_time_ms: 900000) — the two surfaces were inconsistent since the previous session's MCP-only raise.
  • fix(tooling): tooling/effect_analysis.py now includes core.STARTSWITH, core.ENDSWITH, core.TRIM, core.STRIP, core.LSTRIP, core.RSTRIP effect entries matching the new builtins.
  • fix(docs): ainl_run docstring documents variable shadowing pitfall and # frame: convention. CAPABILITY_GRANT_MODEL.md, RUNTIME_CONTAINER_GUIDE.md, SANDBOX_EXECUTION_PROFILE.md updated with current default limits. MCP_RESEARCH_CONTRACT.md updated for frame_hints, workspace limits, and auto-cache. AGENTS.md runtime verb list updated.
  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.3.
1.4.2

April 7, 2026

AINL 1.4.2

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • feat(runtime): AINL_ALLOW_IR_DECLARED_ADAPTERS — when set, AINL_HOST_ADAPTER_ALLOWLIST from the environment is ignored so graphs can use IR-declared adapters; denylist and security profiles still apply; ainl doctor · capability hints updated. For sources under an intelligence/ path segment, RuntimeEngine.from_code and ainl run set AINL_ALLOW_IR_DECLARED_ADAPTERS=1 when unset, unless AINL_INTELLIGENCE_FORCE_HOST_POLICY=1.
  • feat(cli): ainl run registers web, tiktok, queue (OpenClaw integration) consistently on every invocation.
  • feat(mcp): scripts/ainl_mcp_server.py — default ainl_run · fitness tool grants aligned with the HTTP runner (no core-only adapter cap at the policy layer; resource limits unchanged). LLM on MCP remains opt-in via AINL_CONFIG · AINL_MCP_LLM_ENABLED.
  • feat(runner): scripts/runtime_runner_service.py documents the adapter-relax flag in host_security_env · capabilities response.
  • test: tests/test_host_adapter_allowlist_env.py — intelligence path relax, host allowlist env behavior, strict policy override coverage.
  • docs: AGENTS.md, docs/INTELLIGENCE_PROGRAMS.md, docs/LLM_ADAPTER_USAGE.md, env/openclaw-workspace-ainl.env.example, ArmaraOS scheduled-ainl · snippet cross-links.
  • fix(compiler): J L_label (jump to a known label by name) no longer generates false "undefined variable" strict-mode errors. _steps_to_graph now emits analysis_only: true inter-label edges for every J node whose var resolves to a known label, enabling inter-label dataflow propagation without confusing the dataflow checker.
  • fix(compiler): Edge port validation now skips analysis_only: true edges (compiler-internal, dataflow-only), eliminating the spurious "edge … invalid for op 'J' (allowed: [])" error that appeared when strict mode validated label-jumping graphs.
  • fix(tooling): strict_adapter_key_for_step in tooling/effect_analysis.py now uses the IR entity field as the verb fallback when req_op is empty. This fixes *.F unknown-adapter-verb errors for R adapter verb args instructions whose IR stores the verb in entity (affects core, web, tiktok, cache, svc, crm, and similar adapters).
  • feat(tooling): Expanded ADAPTER_EFFECT allowlist with:
    • web.*SEARCH, FETCH, SCRAPE, GET
    • tiktok.*RECENT, SEARCH, PROFILE, STATS, TRENDING
    • svc.*STATUS, RESTART, CADDY, NGINX, HEALTH
    • crm.*QUERY, UPDATE
    • Additional core.* ops: LEN, LT, GT, EQ, MAP, FILTER, CONCAT, SLICE, PARSE, FORMAT, NOW, ISO, JOIN, KEYS, CONTAINS, MERGE, TYPE, BOOL, UPPER, LOWER, ROUND, ABS, MOD, FLOOR, CEIL, RANGE, ZIP, REDUCE, SORT, UNIQUE, FLAT, HEAD, TAIL, CHUNK, SAMPLE, SHUFFLE
  • feat(tooling): Updated tooling/adapter_manifest.json to include the web adapter namespace and all new verbs for tiktok, svc, crm, and core, keeping adapter manifest coverage tests green.
  • fix(intelligence): intelligence/intelligence_digest.lang — removed include "modules/common/generic_memory.ainl" as genmem (include was after the S header, violating strict prelude placement, and generic_memory.ainl does not conform to the ENTRY/EXIT_* module contract); inlined memory writes using direct R memory put adapter calls; replaced QueuePut notify note with R queue Put "notify" note ->_; added missing J L_analyze terminator to L_default_prev.
  • fix(intelligence): intelligence/infrastructure_watchdog.lang — replaced non-standard Ret null with J null; replaced QueuePut notify alert_msg with R queue Put "notify" alert_msg ->_.
  • feat(armaraos): ainl-library walker respects a .ainl-library-skip marker file — any directory tree containing this file is excluded from the App Store listing. Added demo/.ainl-library-skip so development-only demo files stay out of the user-facing App Store.
  • fix(profiles): Promoted 11 files from non-strict-only to strict-valid in tooling/artifact_profiles.json following resolution of their structural issues: examples/api_only.lang, examples/blog.lang, examples/ecom.lang, examples/internal_tool.lang, examples/ticketing.lang, examples/openclaw/daily_lead_summary.lang, examples/openclaw_full_unification.ainl, examples/test_if_var.ainl, examples/test_mul.ainl, examples/test_X_sub.ainl; added new examples/compact/openclaw_learning_handoff.ainl.
  • chore: Synced tooling/canonical_curriculum.json, tooling/canonical_training_pack.json (rebuilt via scripts/build_canonical_training_pack.py), and tests/fixtures/snapshots/compile_outputs.json with promoted files and refreshed checksums.
  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.2.
1.4.1

April 3, 2026

AINL 1.4.1

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • feat(llm): register offline AbstractLLMAdapter (deterministic, no network) for config.yaml + register_llm_adapters demos and CI; LLMRuntimeAdapter normalizes verb casing so R llm.COMPLETION matches completion.
  • feat(core): implement core.GET on CoreBuiltinAdapter (deep key/index read via deep_get); add strict core.GET + llm.COMPLETION entries to tooling/effect_analysis.py.
  • examples(wishlist): add 05b_unified_llm_offline_config.ainl + fixtures/llm_offline.yaml — unified llm path vs 05_route_then_llm_mock.ainl (llm_query + mock env).
  • ci: parser-compat runs tests/test_wishlist_examples_strict.py plus no-network smoke runs for wishlist 01 and 05b.
  • release: bump pyproject.toml · RUNTIME_VERSION · CITATION.cff · tooling/bot_bootstrap.json to 1.4.1.
1.4.0

April 1, 2026

AINL 1.4.0

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • release: bump pyproject.toml · PyPI ainl 1.4.0; align RUNTIME_VERSION 1.4.0 in runtime/engine.py (mirrored tests/emits/server/runtime/engine.py); CITATION.cff version · date-released; tooling/bot_bootstrap.json schema version; ainl serve GET /health reports version from RUNTIME_VERSION.
  • feat(armaraos): first-class ArmaraOS host-pack support:
    • ainl emit --target armaraos emits a hand package (HAND.toml, <stem>.ainl.json, security.json, README.md).
    • ainl status --host armaraos uses consistent env resolution (canonical ARMARAOS_*, legacy OPENFANG_* aliases).
    • ainl install-mcp --host armaraos supports ArmaraOS ~/.armaraos/config.toml format ([[mcp_servers]] array) and installs ~/.armaraos/bin/ainl-run + PATH hints.
  • docs(armaraos): new integration doc docs/ARMARAOS_INTEGRATION.md; linked from the host hub docs/getting_started/HOST_MCP_INTEGRATIONS.md and docs/DOCS_INDEX.md.
  • fix(tests): repair ArmaraOS integration tests to use supported AINL syntax and fix ArmaraOS emitter import path.
1.3.3

March 29, 2026

AINL 1.3.3

Synced from docs/CHANGELOG.md in ainativelang. For narrative release notes see Release notes.

  • fix(packaging): add PyYAML to core dependencies. scripts/ainl_mcp_server.py imports yaml at module load; ainl-mcp --help · CI wheel-integrity must not fail with ModuleNotFoundError: yaml after pip install ainativelang[mcp].
  • fix(ci): tests/test_intelligence_budget_hydrate.py · tests/test_runtime_api_compat.py — close MemoryAdapter SQLite connections (and gc.collect) before deleting temp DB paths on Windows (avoids PermissionError in core-pr).
  • chore(benchmarks): refresh tooling/benchmark_size_ci.json after examples/hello.ainl grew (commented tutorial header); keeps benchmark-regression size gate aligned with minimal_emit token counts.