Skip to content

Commit aab9834

Browse files
techwavedevclaudeCopilotEltonElton Machado
authored
sync: release v1.7.8 orchestration stabilization (#26)
* fix: use NPM OIDC trusted publisher instead of token The publish workflow was failing with NODE_AUTH_TOKEN empty because the token-based publish is deprecated in favor of NPM OIDC trusted publishers. Fix: - Remove NODE_AUTH_TOKEN env var (conflicts with OIDC) - Upgrade npm to latest (>=11.5.1) for OIDC publishing support - Keep id-token: write permission and --provenance flag NPM trusted publisher is already configured on npmjs.com for this repo. OIDC federates identity from GitHub Actions → NPM, eliminating the need for long-lived tokens. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Output Gates + fix skill deduplication (#32) ## Output Gates (Bash Validation) - Parse optional `## Output Gate` section from sub-agent directives - Emit `validation_gate` with bash command in dispatch manifests - Orchestrator must run gate and trust stdout over self-reports - Retry-once-then-user-prompt on failure - All 6 sub-agent directives wired with gates - Scenario 11 test added ## Skill Deduplication Fix - Resolved 13 skill name conflicts in templates/skills/ - Deleted 4 exact-duplicate folders (xlsx, pdf, docx, pptx) - Fixed 2 mislabeled frontmatter (systematic-debugging, plan-writing) - Removed 7 cross-source duplicates (superpowers-lab, cross-tier) - Added deduplicateSkills() post-install validator to init.js * feat: validate_gate.py, /agi router scripts, new skills, catalog sync (#44) * feat(gates): add standalone validate_gate.py and wire asset_compiler gate (closes #33) - Implemented standalone Python validator for Output Gates - Added Output Gate to asset_compiler.md - Verified scenario 11 passes - Note: PR #32 wired docs and test_generator, this finishes the remaining file-verifiable agents. * feat: add /agi router scripts, image-ai-generator + resend skills, sync skill catalog - execution/list_capabilities.py — enumerate installed skills + execution scripts - execution/resolve_paths.py — dual-path resolution for global/local installs - execution/route_request.py — route user requests to matching skills/scripts - skills/image-ai-generator/ — new skill for AI image generation workflows - skills/resend/ — new skill for Resend email API integration - skills/SKILLS_CATALOG.md + templates/skills/extended/ — full catalog sync (371 files) Partial work toward #34 (/agi unified router) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: wire resolve_paths into dispatch_agent_team.py for dual-path resolution dispatch_agent_team.py now imports resolve_file/get_project_root from resolve_paths.py (with graceful fallback for standalone use), replacing the inline find_project_root() implementation. Part of #34. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: per-run state.json emission + lightweight team-run dashboard (#43) * Initial plan * feat: state.json emission from dispatch_agent_team.py + lightweight dashboard - Add execution/team_state.py: helper with update/read/list-active/prune subcommands - Emit .tmp/team-runs/<run_id>/state.json on every team dispatch - Update orchestrator instructions to mandate state.json updates per step - Add dashboard/server.py + dashboard/index.html (vanilla HTML, auto-refresh 2s) - Update session_wrapup.py to prune old state files via team_state.py prune - Add scenario 12 (state-observability) to run_test_scenario.py - Fix store_to_memory warnings to go to stderr (not stdout) Agent-Logs-Url: https://github.com/techwavedev/agi/sessions/ab84de26-8f2d-4071-857b-242dede7a2ac Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> * feat: hybrid knowledge base (Qdrant RAG + markdown fallback) (#42) * Initial plan * feat: implement hybrid knowledge base persistence (Qdrant RAG + markdown fallback) Agent-Logs-Url: https://github.com/techwavedev/agi/sessions/935b8d91-1b8c-4e34-87d8-b20fc8ae7487 Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> * fix: address code review - use SHA-256 for deterministic UUIDs, move imports to module level Agent-Logs-Url: https://github.com/techwavedev/agi/sessions/935b8d91-1b8c-4e34-87d8-b20fc8ae7487 Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> * fix: resolve dispatch_agent_team.py post-merge issues - find_project_root() → get_project_root() (resolve_paths import) - load_team_directive: drop unused root param, update call site - _load_team_state: guard against spec=None before module_from_spec Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Workflow Engine — execute guided multi-skill playbooks (#45) * Initial plan * feat: Workflow Engine — execute guided multi-skill playbooks Agent-Logs-Url: https://github.com/techwavedev/agi/sessions/b1bbb8dc-3c5f-4c65-88c7-d87b2e093b8d Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: techwavedev <36747067+techwavedev@users.noreply.github.com> * feat: implement phase-reset architecture and dynamic team composition * feat: complete global install mode via init.js and dual-path scripts * feat: implement skill trigger evaluation (#40) * feat: MoE Swarm Router (NotebookLM Implementation) (#47) * release: bump version to 1.7.4 * feat(swarm): implement MoE Swarm Router logic for parallel task execution (Closes #46) * fix(swarm): direct orchestrator handoff and qdrant memory cache hit implementation (#48) * feat(swarm): inject qdrant context chunks as RAG payload to save tokens (#49) * feat(gems): create gem factory to build shareable gems and skills (#50) * feat(eval): implement autonomous ralph feedback loop using local engine (#51) * feat: core mempalace integration (#57) - Adds AAAK compression and original payload preservation (closes #52) - Adds temporal --expire-days filtering (closes #53) * feat: implement local micro agent pre-store contradiction check (closes #54) (#58) - Adds point_id extraction to memory chunks - Hooks local_micro_agent.py dynamically to evaluate conflicting ledger facts * fix: hybrid_search raw filter pass-through for complex queries (closes #55) (#59) - Removes restrictive keyword payload matching - Pipes full Qdrant logic including must_not range conditions * feat: script to delete un-scoped legacy qdrant items (closes #56) (#60) * feat: transparent cloud fallback for deterministic agent routing (closes #61) (#62) - Adds REST execution pathways for gemini-1.5-flash, claude-3-haiku, and gpt-4o-mini - Automatically parses API keys from local environment bypassing heavy-weight ollama dependencies * docs: generate marketing release and bump patch to 1.7.5 for mempalace upgrade * fix: payload passthrough for wing/room/original_text/valid_until in retrieval pipeline Root cause: hybrid_search._vector_search() and memory_retrieval.retrieve_context() were both hardcoded to cherry-pick only content/type/project/tags/timestamp from Qdrant payload results. All spatial, temporal, and zero-loss fields were silently dropped. Also fixed retrieve command threshold default (0.7 -> 0.45) and removed stale imports causing UnboundLocalError in contradiction resolver. * chore: code cleanup, docs update, and safety improvements - Remove orphaned docstring in local_micro_agent.py run_inference() - Hoist stale inner imports (time, urllib) to module-level in memory_manager.py - Move dev-only benchmark/cleanup scripts to .tmp/dev-tools/ - Add dry-run default + --force flag to sweep_legacy_memory.py - Add docs/execution/memory_manager.md (spatial, AAAK, temporal, contradiction) - Update docs/execution/local_micro_agent.md with cloud fallback chain - Update CHANGELOG.md with all v1.7.5 bugfixes from live testing * fix: complete contradiction resolver pipeline Two root causes prevented contradiction resolution from working: 1. Empty query string in retrieve_context() produced zero-score vectors that fell below threshold, so no existing facts were ever found. Fix: use the new content as the search query. 2. Deprecated facts (valid_until set) were never filtered during search. Fix: add must_not range filter in hybrid_search._vector_search() to auto-exclude points where valid_until <= current time. * fix: BM25 results now respect Qdrant payload filters (project/wing/room) BM25 (SQLite FTS5) has no concept of Qdrant payload filters, so unscoped results leaked into hybrid search when: 1) BM25-only results merged into vector results without validation, and 2) the BM25-only fallback path (when vector returns 0) returned results without any filter check. Fix: Both paths now validate each BM25-only result against Qdrant via a point lookup before including it. Also fixed the merge path to pass wing/room/original_text/valid_until through the merged result dict. * fix(memory): stabilize architecture and resolve 10 deep evaluation bugs for v1.7.5 * fix(secrets): resolve semgrep false positive on .partition() bypassing string split * fix(security): replace blocked packages trivy and litellm with snyk and langfuse * feat: Environment auto-setup directive & session_boot generative model support (#63) * feat: add environment auto-setup directive and enhance session_boot.py - Create directives/setup_environment.md: comprehensive bootstrap guide for new machines covering Python venv, Homebrew deps, Ollama models, Qdrant, and the private/public repo workflow. - Enhance session_boot.py to auto-pull generative models (gemma4:e4b, glm-4.7-flash) during --auto-fix, not just the embedding model. - Fix session_boot.py run_session_init() to use sys.executable instead of hardcoded 'python3' so it always respects the active venv. - Update SKILLS_CATALOG.md with latest skill metadata. * fix: address Copilot review comments on PR #63 - Remove duplicate 'import sys' statement - Use exact model name match instead of prefix match for installed check - Separate pull failures into report['issues'] instead of report['actions_taken'] - Add --no-generative flag to skip large model downloads in CI/constrained envs - Use explicit /opt/homebrew/bin/python3 for venv creation in directive - Clarify required vs optional Ollama models in directive --------- Co-authored-by: Elton <elton@kuaray.lan> * chore: bump v1.7.6 — template sync, security directives, langfuse integration, local routing - Version bump: 1.7.5 → 1.7.6 - CHANGELOG: added 1.7.6 entry (security validation, langfuse, local micro agent, task router) - templates/base/execution: synced 30+ new execution scripts from project root - templates/base/directives: added security_team, code_security_reviewer, dependency_auditor, secret_scanner - templates/skills: synced qdrant-memory scripts, docx/pptx/whatsapp security fixes - release_gate.py, security_scan.py, README.md updates * chore: remove internal Time Machine reference from CHANGELOGs * feat: native multi-agent runtime integration - Implemented agent_runtime.py to route native subagent tasks via task_router - Refactored dispatch_agent_team.py to use native logic and drop openclaude CLI bindings - Added directives/native_multi_agent.md to document the In-Context Delegation protocol - Synced AGENTS.md and updated templates/base * chore: release version bump to 1.7.7 * fix: refactor hardcoded 'antigravity' terminology to 'active_session' to support all LLM orchestrators (Claude, Copilot, OpenClaude, etc) * fix: update exists() to is_file() to prevent directories from being read * fix: resolve critical reliability bugs #72, #73, #74 - Adds 120s timeout and exception handling to local ollama deployments - Automates directory creation for missing worktrees - Traps JSONDecodeErrors gracefully on manifest generation * chore: restore missing agent team rules and workflows to live workspace - Restores agent_team_rules.md - Restores memory-usage.md - Restores run-agent-team-tests.md * fix: resolve post-release architectural findings 77, 78, 79 Removes legacy fastapi tool bridge Enforces exists check on local agent route building Degrades docker dependency missing warning to a benign skip * fix: restore missing feature files claimed in README - Restores `blockchain_auth.py` to the live execution path. - Restores `plugin-discovery/scripts/platform_setup.py` into live skills tier to ensure setup wizard functions appropriately. * chore: backlog blockchain authentication components - Formally removes from live and base templates after feature freeze. - Redacts blockchain docs and integration snippets from README. - Re-flags Trust & Tenancy mode to '🧊 Backlogged' within architectural roadmap. * fix: restore missing cross-platform agent routing symlinks Generates the advertised OPENCODE.md, COPILOT.md, and OPENCLAW.md symlinks bridging external models into the native AGENTS.md context stream. * chore: bump version to 1.7.8 and update CHANGELOG Properly formalises the architectural stability patches, native platform symlinks, and dependency logic fixes mapped natively over the core AGI structural guidelines. --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Elton <elton@kuaray.lan> Co-authored-by: Elton Machado <elton@techwave.dev>
1 parent 61732bf commit aab9834

745 files changed

Lines changed: 56290 additions & 35412 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agent/scripts/release_gate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def syntax_check():
208208
checked = 0
209209
for py in py_files:
210210
try:
211-
subprocess.run(["python3", "-m", "py_compile", str(py)], check=True, capture_output=True)
211+
subprocess.run([sys.executable, "-m", "py_compile", str(py)], check=True, capture_output=True)
212212
except subprocess.CalledProcessError:
213213
print(f"❌ Syntax error in {py}")
214214
failed = True

.github/workflows/dependency-review.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@ permissions:
88
jobs:
99
dependency-review:
1010
runs-on: ubuntu-latest
11+
# Dependency review requires GitHub Advanced Security (free for public repos only).
12+
# Skip on private repos where GHAS is not enabled to avoid false failures.
13+
if: github.event.repository.private == false
1114
steps:
1215
- name: 'Checkout Repository'
1316
uses: actions/checkout@v6
1417
- name: 'Dependency Review'
1518
uses: actions/dependency-review-action@v4
19+
with:
20+
fail-on-severity: critical

AGENTS.md

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ Only create new scripts when truly necessary. Reuse and extend existing tools.
315315

316316
### 3. Local-First Routing (Security + Token Savings)
317317

318-
**Principle:** Small deterministic tasks run on local Ollama models (Gemma 4, GLM). Security-sensitive tasks (secrets, tokens, credentials) MUST stay local — never sent to cloud APIs.
318+
**Principle:** Small deterministic tasks run on local Ollama models (Gemma 4, GLM). Security-sensitive tasks (secrets, tokens, credentials) MUST stay local — never sent to cloud APIs. **Performance-first rule:** Never sacrifice output quality for token savings — if a task needs deep reasoning, it MUST go to cloud.
319319

320320
#### Task Router (auto-classification)
321321

@@ -333,14 +333,27 @@ python3 execution/task_router.py split --task "1) Read .env 2) summarize the log
333333
python3 execution/task_router.py stats
334334
```
335335

336-
**Routing rules (enforced by `task_router.py`):**
336+
#### Task Classification Matrix
337337

338-
| Signal | Route | Reason |
339-
|--------|-------|--------|
340-
| Task references `.env`, passwords, tokens, API keys, credentials | `local_required` | Secrets never leave the machine |
341-
| Task is summarize, classify, extract, parse, format, convert | `local` | Small + deterministic = free tokens |
342-
| Task is architect, refactor, review, implement, design | `cloud` | Needs deep reasoning |
343-
| Security task fails locally | **BLOCKED** | No cloud fallback for secrets |
338+
| Route | When | Examples | Model |
339+
|-------|------|----------|-------|
340+
| `local_required` | Secrets, credentials, .env, tokens, passwords, private keys | Parse .env, extract API key, read credentials.json, check token format | `gemma4:e4b` |
341+
| `local` | Simple deterministic tasks that don't need deep reasoning | Summarize error log, classify text, convert naming convention, format JSON, count lines, extract fields | `gemma4:e4b``glm-4.7-flash` fallback |
342+
| `cloud` | Complex reasoning, multi-file understanding, architecture | Design system, refactor module, review PR, debug complex issue, implement feature, write documentation | Cloud LLM (Claude, Gemini, etc.) |
343+
344+
**Decision tree:**
345+
346+
```
347+
Is this task security-sensitive (secrets, .env, credentials)?
348+
YES → local_required (NEVER cloud, even if local fails → BLOCKED)
349+
NO → Is it simple + deterministic (summarize, classify, format, extract, parse)?
350+
YES → Can Gemma4 handle it without quality loss?
351+
YES → local (free tokens)
352+
NO → cloud (quality over savings)
353+
NO → cloud (needs deep reasoning)
354+
```
355+
356+
**Key rule:** When in doubt, err on the side of **cloud for quality** and **local for security**. The savings from routing simple tasks locally add up (80-100% on repeated work), but a bad answer from a weak model costs more than the tokens saved.
344357

345358
#### Local Micro Agent (execution)
346359

@@ -359,6 +372,18 @@ python3 execution/local_micro_agent.py health
359372

360373
**Agent protocol:** Before delegating any task to a sub-agent, the orchestrator SHOULD run `task_router.py classify` to check if it can be handled locally. For batch operations, use `task_router.py split` to decompose compound tasks and route each subtask independently.
361374

375+
#### What Local Models Handle Well (concrete examples)
376+
377+
-`"Read .env and extract the DATABASE_URL value"``local_required`
378+
-`"Summarize this 50-line error stack trace"``local`
379+
-`"Convert camelCase function names to snake_case"``local`
380+
-`"Parse this JSON and extract the 'status' field"``local`
381+
-`"Classify this log entry as error/warning/info"``local`
382+
-`"Count the number of TODO comments in this file"``local`
383+
-`"Refactor the auth module to use JWT"``cloud` (needs deep reasoning)
384+
-`"Review this PR for security issues"``cloud` (needs context awareness)
385+
-`"Design a caching strategy for this API"``cloud` (needs architecture thinking)
386+
362387
### 4. Self-Anneal When Things Break
363388

364389
Errors are learning opportunities, not failures. When something breaks:
@@ -865,12 +890,20 @@ When a script returns an error:
865890
866891
### What Are Team Agents?
867892

868-
A **team agent** is a named group of sub-agents that collaborate toward a shared goal. Teams are defined in `directives/teams/` and dispatched with:
893+
A **team agent** is a named group of sub-agents that collaborate toward a shared goal. Teams are defined in `directives/teams/`.
894+
895+
Starting with v1.7.7, the framework uses a **Native Agent Runtime** to manage these teams without relying on external Node CLIs.
896+
- **Simple Tasks:** Are automatically routed to `local_micro_agent.py` running locally on Ollama.
897+
- **Complex Tasks:** Are delegated back to *you*, the active orchestrator session (Claude, Antigravity, Copilot, etc.) via In-Context Delegation, so no external cloud API keys are expended.
898+
899+
Dispatch teams using the native runtime execution flag:
869900

870901
```bash
871-
python3 execution/dispatch_agent_team.py --team <team_id> --payload '<json>'
902+
python3 execution/dispatch_agent_team.py --team <team_id> --payload '<json>' --execute-native
872903
```
873904

905+
> **Mandatory Rule:** When a sub-agent task returns `"status": "delegated_to_active_session"`, you MUST immediately open the provided `delegation_file` and execute its instructions natively as the specified persona.
906+
874907
### Dynamic State Handoff (Agent Communication)
875908

876909
Sub-agents execute sequentially based on the manifest, but they can pass context to the next agent in line, or to remote agents executing in parallel.
@@ -919,7 +952,8 @@ python3 execution/dispatch_agent_team.py \
919952
--team my_team \
920953
--payload '{"task": "..."}' \
921954
--parallel \
922-
--partitions '{"agent-1": ["src/api/**"], "agent-2": ["tests/**"]}'
955+
--partitions '{"agent-1": ["src/api/**"], "agent-2": ["tests/**"]}' \
956+
--execute-native
923957
```
924958

925959
**How it works:**

CHANGELOG.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.7.8] - 2026-04-12
11+
12+
### Fixed
13+
- **Platform-Adaptive Routing Links**: Restored missing `OPENCODE.md`, `COPILOT.md`, and `OPENCLAW.md` symlinks required natively by the architecture to properly bind orchestrator directives to new local models.
14+
- **Documentation Parity**: Placed iced blockchain authentication features formally into backlog. Stripped associated modules and `README.md` concepts from the live execution architecture to align framework features with active repository capabilities.
15+
- **Docker Dependency Validation**: Relegated Docker Daemon checks in `system_checkup.py` to 'Optional', preventing OS-level warning crashes for strictly cloud-based Qdrant deployments.
16+
17+
## [1.7.7] - 2026-04-12
18+
19+
### Added
20+
- **Native Multi-Agent Runtime Integration**: Replaced external node CLI integrations with `execution/agent_runtime.py`, executing workloads directly via IDE prompt adoptions ("In-Context Delegation") or seamlessly shifting to deterministic Ollama subsets using `task_router.py`. Worktree state isolations are cleanly synchronized natively without API bridge lag.
21+
22+
## [1.7.6] - 2026-04-10
23+
24+
### Added
25+
- **Security Validation Support**: Added `code_security_reviewer`, `dependency_auditor`, `secret_scanner`, and `security_team` directives for comprehensive security scanning.
26+
- **Langfuse Integration**: Introduced `langfuse_dashboard` and `langfuse_tracing` for enhanced observability.
27+
- **Local Micro Agent**: Added robust `local_micro_agent` execution to handle deterministic internal operations locally and save context tokens.
28+
- **Task Router**: Intelligent sub-task routing that correctly balances cloud inference API calls with local execution layers.
29+
30+
## [1.7.5] - 2026-04-07
31+
32+
### Added
33+
34+
- **MemPalace Architecture Integration**: Adopted AAAK Symbolic Compression (via `Dialect` class) and Spatial Hierarchy (Wings/Rooms) for Qdrant storage.
35+
- **Temporal Memory Ledger**: Added native temporal expiration utilizing Qdrant's `must_not` range clauses (`--expire-days`).
36+
- **AI-Driven Contradiction Resolution**: Pre-store semantic conflict check using `local_micro_agent.py` to auto-deprecate old facts.
37+
- **Out-of-the-Box Cloud Fallback**: Automatically delegates fast deterministic tasks to `gemini-1.5-flash`, `gpt-4o-mini`, or `claude-3-haiku` by detecting API keys in `.env` if local hardware (Ollama) is unavailable.
38+
- **Zero-Loss Payload Preservation**: Retaining raw verbatim text within Qdrant payloads alongside AAAK compression to ensure source fidelity.
39+
40+
### Fixed
41+
- **Payload Passthrough Bug**: `hybrid_search.py` and `memory_retrieval.py` were silently stripping `wing`, `room`, `original_text`, and `valid_until` from Qdrant payloads — making spatial metadata and zero-loss recovery invisible to all consumers.
42+
- **BM25 AAAK Compression Leak**: `memory_retrieval.py` was indexing compressed AAAK tokens into BM25 instead of the original raw text, making keyword search impossible.
43+
- **Datetime Format Collision (Python 3.12/3.14)**: Replaced deprecated `datetime.utcnow()` with timezone-aware `datetime.now(timezone.utc)` across all caching layers. This fixes silent query failures where `semantic_cache` filters failed to match Qdrant's RFC 3339 constraints.
44+
- **Missing Qdrant Payload Indexes**: Added `wing`, `room`, and `valid_until` optimized payload indexes to `init_collection.py`, improving vector scope search from O(N) linear scans to O(logN).
45+
- **Resolver Double Extinction**: Removed duplicate `exclude_expired` constraint from `build_filter`, fixing a dual-range conflict and ensuring deprecation logic relies solely on the primary `must_not` layer.
46+
- **Multiple ID Resolution**: Upgraded the generic `/auto` contradiction resolver in `memory_manager.py` to identify, parse, and deprecate *multiple* legacy IDs at once via `[0, 2]` syntax.
47+
- **Default Embedding Dimensions**: Corrected `init_collection` default dimension configuration from `1536` to `768`, stabilizing `nomic-embed-text` deployments out-of-the-box.
48+
- **Retrieve Threshold Mismatch**: `retrieve` command defaulted to `score_threshold: 0.7` while `auto` used `0.45`, causing `retrieve` to silently return empty results for valid queries.
49+
- **UnboundLocalError on `json`**: Duplicate `import json` inside contradiction resolver scope shadowed the global import, crashing all `store` and `retrieve` CLI operations.
50+
- **UnboundLocalError on `retrieve_context`**: Local re-import of `retrieve_context` inside contradiction block masked the global import, crashing the retrieve subcommand.
51+
- **Invalid `exclude_expired` kwarg**: Nonexistent parameter passed to `retrieve_context()` in the contradiction resolver, crashing `--resolve-contradictions`.
52+
- **Orphaned docstring in `local_micro_agent.py`**: Dead string literal left inside `run_inference()` after cloud routing was prepended.
53+
- **Duplicate inner imports**: Stale `import time` and `from urllib.request import Request, urlopen` inside function bodies shadowing top-level imports in `memory_manager.py`.
54+
- **Hybrid Search Filter Piping**: Updated SQLite/Vector hybrid logic to directly pipe raw Qdrant schema conditionals instead of string matching.
55+
- **Legacy Qdrant Sweeper**: Added `sweep_legacy_memory.py` to formally purge un-scoped points from local Vector mappings.
56+
57+
## [1.7.4] - 2026-04-05
58+
59+
### Added
60+
61+
- **Workflow Engine** (`execution/workflow_engine.py`) — Guided multi-skill playbook executor for the 4 playbooks defined in `data/workflows.json` (`ship-saas-mvp`, `security-audit-web-app`, `build-ai-agent-system`, `qa-browser-automation`). Commands: `list`, `start <id>`, `next`, `status`, `complete [--notes]`, `skip [--reason]`, `abort`. Progress is persisted to `.tmp/playbook_state.json`. Detects and warns about missing recommended skills. Full `--json` output mode for programmatic use.
62+
- **Phase-Reset Architecture** (`directives/phase_reset_architecture.md`) — Context isolation boundaries for multi-step playbooks to prevent LLM token drift. Integrates with Workflow Engine via `phase_boundary: true` in `workflows.json`.
63+
- **Global Install Mode** (`bin/init.js`) — Added `--global` flag bridging framework commands dynamically via `execution/resolve_paths.py` from `~/.agent/`, while bootstrapping local `~/.claude/CLAUDE.md` pointers.
64+
- **Router / Architect** — Added `/agi` slash command, `execution/route_request.py`, and `execution/compose_team.py` for on-the-fly dynamic team compositing based on intent.
65+
- **Skill Trigger Evaluations** (`execution/run_skill_trigger_eval.py`, `execution/aggregate_skill_benchmark.py`) — Tests skill trigger determinism using Claude sandbox queries (`claude -p`). Integrates into `karpathy_loop.py` to gate Git commits unless the `pass_rate` and `trigger_rate` jointly improve.
66+
1067
### Security
1168

1269
- **CodeQL alerts — resolved all 23 open findings on `techwavedev/agi-agent-kit`.**

COPILOT.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

OPENCLAW.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

OPENCODE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

0 commit comments

Comments
 (0)