-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
McAmner edited this page Jun 2, 2026
·
1 revision
-
stack-statusvector-store health probe —_probe_vector_item_count()triesPOST localhost:8765/tools/list_semantic_memory(2 s timeout, never raises). Returns item count orNonewhen unavailable. -
_probe_mq_mcp_http()extended with two new fields:-
has_vector_store_tools—search_semantic_memoryorlist_semantic_memorypresent -
vector_item_count— item count fromlist_semantic_memory, orNone
-
-
collect_mq_mcp()— when mq-mcp HTTP is reachable,vectorfield is now derived from HTTP probe (ok/no-vector-tools) instead of file existence check -
collect_mq_mcp()— two new output fields:has_vector_store_tools,vector_item_count -
stack-statusrender — newvector_store=ok items=Nline shown when mq-mcp is reachable
- SAMPLE — updated to include
has_vector_store_tools: true,vector_item_count: 42 - ROADMAP — v1.2.0 marked Done; current status updated
- README badge — v1.1.0 → v1.2.0
-
stack-status-smoke.sh— added assertions forvector_store=,has_vector_store_tools,vector_item_countin sample output
-
stack-statusmq-mcp HTTP health probe —_probe_mq_mcp_http()triesGET localhost:8765/tools(2 s timeout, never raises). Reports:-
http_reachable— whether mq-mcp server is running -
tool_count— number of registered tools -
has_orchestration_contract—validate_orchestration_contractpresent -
has_learn_tools—learn_status/search_learned_patternspresent -
has_review_skills—list_review_skills/review_filepresent
-
-
stack-statusrender — newhttp=line shows reachability and feature flags -
stack-statusrecommendation — suggestsmq-agent mcp startwhen mq-mcp is installed but not reachable
- ROADMAP —
Current statusupdated to v1.0.3; v1.0.3 marked Done; v1.1.0 added to release map - README badge — v1.0.3 → v1.1.0
- SAMPLE — updated to include the five new
http_*/ feature-flag fields
- ROADMAP: ticked off 9 stale open items — intent risk classification,
rollback-plan and requires-confirmation fields (all implemented in
v0.14.0), GitHub Actions gate, and observability items covered by
env-status. Only two explicitly deferred items remain, both requiring external infrastructure (mq-mcp, vector store). - ROADMAP:
Current statusupdated to v1.0.3; v1.0.3 added to release map.
-
mq-hal env-status(env) — HAL environment variable report, tool availability check, and degraded-mode recommendations. Shows which ofOLLAMA_URL,OLLAMA_MODEL,MQ_HAL_STATE_DIR,EDITOR, and related vars are set vs default. Reports availability of git, Python, Ollama, ripgrep, gh, mqlaunch, repo-signal, mq-agent and mq-image-analyze. Prints actionable fix hints for missing optional tools. -
tests/env-status-smoke.sh— 6-step smoke test.
- ROADMAP:
Current statusupdated to v1.0.2; model-status and stack-status ticked off in observability layer; v1.0.1 and v1.0.2 added to release map. -
docs/COMMAND_SURFACE.md—env-statusadded (35 commands total). -
release-check.sh—env_status.pysyntax check andenv-status-smoke.shadded to smoke suite.
-
mq-hal learn— local lesson store for verified learnings from Codex, Claude, or manual work. Subcommands:add,list,show <id>,search <query>,summarize. Storage:~/.mq-hal/learn/lessons.jsonl. - Secret redaction before write:
api_key:,token:,bearer,ghp_*,sk-*patterns are replaced with[REDACTED]. -
docs/LEARNING.md— learn layer documentation with storage format, safety rules, and distinction from session memory. -
tests/learn-smoke.sh— 8-step smoke test covering add, list, show, search, summarize, redaction, and JSON output. Wired into CI andrelease-check.sh.
-
docs/COMMAND_SURFACE.md—learnadded to named command table (34 commands total, Memory=Yes). -
release-check.sh—learn.pysyntax check andlearn-smoke.shadded to smoke test suite.
-
docs/FORMATS.md— declares stable on-disk formats for repo config (config/repos.json), session memory (~/.mq-hal/session.jsonl) and timeline output. -
docs/TROUBLESHOOTING.md— common problems and fixes for install, config, Ollama, model profiles, release-check, smoke tests and session memory.
- ROADMAP v1.0.0 requirements fully satisfied: all 19 items done.
- Release map updated: v0.15.x marked done, v1.0.0 promoted to current.
- README version badge updated to blue (stable release).
- GitHub Pages subtitle updated to "stable local HAL command router".
- Full safety audit: no
shell=True, noos.system, intent output normalized before routing, path escape protection (is_within()), executorvalidate_command+ critic gate + dry-run default. No critical safety gaps found.
-
release-check.shnow checks whether the GitHub release tag for the current version already exists; fails if it does, preventing accidental re-release. -
release-check.shsmoke tests use|| fail "..."so all failures are collected and reported together with the FAILED banner, instead of exiting silently at the first failure. -
tools/check-command-docs.shextracts commands dynamically from the case statement inbin/mq-halinstead of a hardcoded list, blocking release if any dispatched command is undocumented indocs/COMMAND_SURFACE.md. - ROADMAP release gate v2 items marked complete.
-
tests/repo-memory-smoke.shnow points repo-memory at the active checkout viaMQ_HAL_CONFIG_PATH, so GitHub Actions does not depend on~/mq-halexisting on the runner. -
scripts/repo_memory.pysupportsMQ_HAL_CONFIG_PATHfor deterministic test and CI configuration overrides.
- Visual HAL:
mq-hal analyze-diagram,mq-hal review-ui, andmq-hal architecture-brieffor read-only diagram/UI observations, trust-boundary prompts, and draft YAML output. -
scripts/visual_hal.pywith deterministic local fallback and optional read-onlymq-image-analyzecontext when available. - Install/update flow:
install.sh,uninstall.sh,upgrade.sh,mq-hal version,mq-hal config-check, andmq-hal update. -
docs/INSTALL.mdwith PATH setup, shell completion notes, clean reinstall steps, uninstall behavior, and an optional Homebrew formula plan. -
release-check.sh --dry-runfor non-mutating release validation. -
tests/visual-hal-smoke.shandtests/install-flow-smoke.sh, wired into CI,tests/smoke.sh, andrelease-check.sh.
- Command registry, command surface docs, README proof list, and roadmap now include Visual HAL and install/update commands.
-
scripts/executor.py—mq-hal execute plan.json --confirm: executes a validated plan step by step after a pre-flight critic check. Without--confirm, it prints a dry-run preview. -
executerefuses criticFAILplans, rejects shell operators insafe_command, and asks again for steps markedrequires_confirm. -
tests/execute-smoke.sh— 5 checks covering dry-run preview, confirmed safe execution, dangerous-plan refusal, and shell-operator refusal. -
scripts/model_profiles.pyplus--model <profile>for the router and planner, backed byconfig/models.json. -
scripts/model_status.py—mq-hal model-status: read-only Ollama reachability, latency, and configured profile availability check. -
scripts/model_test.py—mq-hal model-test: read-only structured generation smoke check for a selected model profile. - Prompt regression smoke tests for deterministic routing.
-
scripts/repo_memory.py—mq-hal index/search/ask-repo/repo-map: local deterministic repo memory with optional Ollama embeddings. -
scripts/critic.py—mq-hal critic plan.json: deterministic safety review of a saved plan with 8 checks: rollback, validation, confirmation flags, dangerous commands, known repos, scope (file count), step count, and missing tests. Verdict: PASS / REVIEW / FAIL. - Reads from file path, stdin (
-), or--sample. Returns exit 1 on FAIL. -
tests/critic-smoke.sh— 6 checks including dangerous plan → FAIL and clean plan → PASS/REVIEW assertions.
-
scripts/planner.py—mq-hal plan "<goal>": generates a structured local plan via Ollama with goal, affected repos/files, risk level, numbered steps with safe_command and requires_confirm, validation checklist, and rollback_plan. -
prompts/planner.txt— dedicated planning system prompt with risk level definitions and safety rules. -
--out <file>flag saves the plan to a JSON file for use withmq-hal critic(future). -
--no-aireturns a stub plan; Ollama fallback on unavailability. -
tests/plan-smoke.sh— 6 checks: syntax, sample output, section headings, JSON shape, --out file save, --no-ai stub plan.
-
config/tools.json— machine-readable tool registry: 16 named commands with risk_level, requires_confirm, uses_ai, writes_memory, and mqlaunch_alias. -
scripts/tools_list.py—mq-hal toolsandmq-hal tools --json: list available HAL tools from the registry. -
config/models.json— model profile registry: router, planner, critic, code profiles with model name and reasoning_effort. -
scripts/models_list.py—mq-hal modelsandmq-hal models --json: show available model profiles. - Intent schema carry-forward (from v0.11.0):
risk_level,rollback_plan,requires_confirmationadded as optional nullable fields toschemas/intent.schema.jsonandINTENT_SCHEMAinhal.py.parse_intentandempty_intentupdated accordingly. - Session summaries:
mq-hal sessionnow shows a type-count summary at the bottom of the event list. -
tests/tools-smoke.shandtests/models-smoke.sh(4 checks each). - All new smoke tests wired into
tests/smoke.sh,release-check.sh, and.github/workflows/tests.yml.
-
handle_intentinhal.py: moverefuseand mqlaunch allowlist rejection beforeresolve_repo/ensure_repo_exists— fixes CI failure on GitHub Actions where configured repos do not exist on the runner. -
tests/router-safety-smoke.sh: replace CLI-level--confirmtest (which needed a real repo path) with a Python-level test usingconfirm_commandandrun_planned_commanddirectly.
-
scripts/hello.py—mq-hal hello/mq-hal status-screen: greeting and quick status screen showing active repo, version, memory brief, and recent session events. -
timeline --compactflag: short format showing only time, type, and repo — no status column, useful for at-a-glance overviews. -
docs/BRIDGET.md— Bridget/HAL identity doc: roles, architecture, design rules, and identity background. -
docs/VOICE_MODE.md— voice mode design doc: principles, non-goals, proposed local TTS/STT pipeline, Bridget voice toggle design, and safety constraints. -
tests/hello-smoke.sh— 5-check smoke test covering syntax, sample output, section headings, JSON shape, and status-screen alias. -
helloadded todocs/COMMAND_SURFACE.mdandtools/check-command-docs.sh. - Both new tests wired into
tests/smoke.shandrelease-check.sh.
-
scripts/memory_status.py—mq-hal memory-statusandmq-hal memory-brief: show mq-agent semantic memory state with graceful fallback if mq-agent is not installed. Checks$MQ_AGENT_BIN, PATH, and known local paths. -
scripts/agent_brief.py—mq-hal agent-brief: mq-agent availability and memory summary in one command. - mq-agent added to
mq-hal stack-statustools table. - Memory brief line added to
mq-hal briefandmq-hal release-briefoutput. -
tests/memory-status-smoke.shandtests/agent-brief-smoke.sh— smoke tests covering sample output, JSON shape, brief format, and fallback when mq-agent is absent. - Both new smoke tests wired into
tests/smoke.shandrelease-check.sh. -
memory-status,memory-brief, andagent-briefadded todocs/COMMAND_SURFACE.mdandtools/check-command-docs.sh.
-
schemas/intent.schema.json— formal JSON Schema for the mq-hal intent contract, extracted from the inline dict inscripts/hal.py. -
docs/INTENT_CONTRACT.md— complete contract covering all 15 intent types, field reference, rejection behavior table, no-AI deterministic fallback patterns, and valid/rejected examples. -
docs/COMMAND_SURFACE.md— compact canonical command registry: 13 named commands with AI/memory/confirm flags and mqlaunch aliases, plus the full router intent allowlist with safety classes. -
tests/intent-schema-smoke.sh— 7-check smoke test verifying schema file integrity, schema/code enum parity, unknown intent → refuse, malformed JSON → refuse, path escape rejection, and branch name validation. -
tests/router-safety-smoke.sh— 6-check smoke test verifying handler coverage via AST analysis, refuse exit 2, unknown mqlaunch exit 2,--confirmcancel exit 130, empty prompt help, and mqlaunch allowlist structure. -
tools/check-command-docs.sh— fails if any canonical command is missing fromdocs/COMMAND_SURFACE.mdorbin/mq-haldispatch. - Intent contract verification step in
release-check.sh: checks file presence and validates schema const and enum matchhal.pyat release time. - Intent contract smoke tests and command surface check added to
tests/smoke.shandrelease-check.sh.
- Fixed
docs/index.htmlPages version badge from v0.9.1 to v0.10.1 (was two releases behind). - Added
tests/hal-router-smoke.shto CI workflow — it existed but was never run in CI.
-
release-check.sh— pre-release gate covering Python syntax check for all scripts, README markdown guard, version sync across README/CHANGELOG/docs/index.html, and all 13 smoke tests. -
Proofsection in README listing what is verified: JSON-only model output, router allowlist enforcement, fix planner no-execute guarantee, local session memory, and smoke test coverage. -
docs-smoke.shnow checks thatdocs/index.htmlversion matchesVERSIONfile. -
tools/markdown_guard.pynow requires## Proofsection in README.
- Added
mq-hal stack-statusfor a read-only local stack overview. - Shows
mq-hal,mqlaunch,repo-signal, optionalbridget, configured repos, git state, VERSION, and repo-signal publish status. - Added
tests/stack-status-smoke.sh. - Documented Stack Status in README and command surface docs.
- Added
tools/write_readme.pyto regenerate README with clean fenced code blocks. - Added
tools/markdown_guard.pyto prevent flattened README rendering regressions. - Strengthened docs smoke coverage to run the README markdown guard.
- Regenerated README for the v0.9.x HAL command surface.
- Fixed
release-briefopening ChatGPT browser tabs when called viamq-hal. Therun()helper inrelease_brief.pynow passesstdin=subprocess.DEVNULLso subprocesses cannot block on terminal input or triggerpause_enterreads. - Synced
docs/index.htmlversion badge from v0.9.0 to v0.9.1. - Strengthened
docs-smoke.shfrom 12 to 15 checks: command surface file existence, README links to command surface, and clean fence info string validation.
- Added
mq-hal audit— publish quality and README quality audit viarepo-signal. - Runs
repo-signal publish-checklistandrepo-signal readme-score, derives overall status (ready/needs_review/not_ready). - Supports
--json,--sample,--repo,--no-memory. - Added
tests/audit-smoke.sh(4 checks). - Extended
docs-smoke.shto 12 checks including Audit coverage. - Documented HAL Audit in README.
- Stabilized GitHub Actions workflow for the v0.8.x command set.
- Added
--sampleflag tobrief.pyso smoke tests run without requiring a live repo. - Hardened
release-brief-smoke.shto 5 checks includingreleasealias routing. - Strengthened
docs-smoke.shto 11 checks including Release Brief coverage.
- Added
mq-hal release-brieffor read-only release readiness summaries. - Checks VERSION, CHANGELOG, README version reference, git state, CI status, latest release, doctor summary, and release-check.
- Supports
--json,--sample,--skip-gh,--skip-doctor,--skip-release-check,--no-memory. - Added
tests/release-brief-smoke.shand CI workflow coverage. - Added
brief-smoke.shto CI workflow (was missing).
- Regenerated README with balanced fenced code blocks for clean GitHub rendering.
- Added HAL Repo Ops section to README documenting
repo-statusandci. - Strengthened docs smoke test to 10 checks including Repo Ops coverage.
- Synced GitHub Pages with v0.7.1 command set.
- Added
mq-hal repo-status— read-only git repo status with branch, dirty state, recent commits, and tags. - Added
mq-hal ci— read-only GitHub Actions status viagh run list. - Both commands support
--json,--sample, and--repoflags. - Added
tests/repo-status-smoke.shandtests/ci-status-smoke.sh. - Added CI syntax and smoke coverage for both new scripts.
- Added
mq-hal brief— quick status snapshot combining git, doctor, CI, release, and last session note. - Added
mqlaunch hal briefbridge command. - Updated HAL menu with Observe / Plan / Memory / Debug sections; Brief is now item 1.
- Added
tests/brief-smoke.sh.
- Rewrote README using generated fenced code blocks to fix GitHub rendering.
- Strengthened docs smoke test to check balanced markdown fences and multiline helper examples.
All notable changes to mq-hal are documented here.
- Added
docs/INTEGRATION.md— HAL Integration Contract covering architecture, feature contract, bridge contract, tool policy, safety rules, memory policy, and versioning strategy. - Added
tests/docs-smoke.sh— verifies README, integration contract, and key structural markers. - Added docs smoke test to CI.
- Rewrote README with consistent
---separators so GitHub renders all code blocks correctly.
- Added
mq-hal timeline— compact terminal table view over HAL Session Memory. - Added
--detailsflag to show one-line summary under each timeline row. - Added
--repo,--type,--limit, and--jsonfilters for timeline. - Added
tests/timeline-smoke.shand CI coverage fortimeline.py.
- Rewrote README markdown for clean GitHub rendering — each code block separated by blank lines.
- Added HAL Session Memory backed by local JSONL storage in
~/.mq-hal/session.jsonl. - Added
mq-hal session,mq-hal last,mq-hal remember, andmq-hal memory-pathcommands. - Added automatic memory capture for
doctor-summaryandfix-doctorresults. - Added
--no-memoryflag todoctor-summaryandfix-doctorto suppress memory writes. - Added
MQ_HAL_DISABLE_MEMORY=1environment variable to disable memory globally. - Added
tests/session-memory-smoke.shand CI coverage forsession_memory.py. - Fixed double-save:
fix-doctorsubprocess call todoctor_summary.pynow uses--no-memory.
- Fixed CI failure in
fix-planner-smoke.sh— added--sampleflag tofix_planner.pyso smoke tests run against embedded sample data instead of requiring a livemacos-scriptsrepo on the runner.
- Added
mq-hal fix-doctorfor safe fix planning from HAL Doctor Summary. - Added command sanitization — blocks destructive tokens, allowlist-filters suggestions.
- Added
prompts/fix-planner.txtsystem prompt for the planner model. - Added
tests/fix-planner-smoke.shwith syntax, JSON, and text output checks. - Updated CI to cover
fix_planner.pysyntax and fix-planner smoke test.
- Added
mq-hal doctor-summary— runsmqlaunch doctor --json, parses the output, and summarizes health status with Ollama. - Added deterministic fallback summary when Ollama is unavailable (
--no-ai). - Added
--jsonoutput mode for machine-readable summary. - Added
--sampleflag for smoke testing without a live repo. - Added
prompts/doctor-summary.txtsystem prompt for the summary model. - Added
tests/doctor-summary-smoke.shwith syntax, text, and JSON checks. - Updated CI to cover
doctor_summary.pysyntax and smoke test.
- Natural language command routing via Ollama (qwen3:4b-instruct)
- Structured JSON intent schema with allowlist enforcement
- Safe intent set:
help,list_repos,switch_repo,print_cd,pwd,repo_tree,git_status,git_log,run_mqlaunch,refuse -
mqlaunchcommand allowlist:doctor,release-check,selftest,perf,system-check,demo - Persistent active-repo state in
~/.mq-hal/state.json -
--cdflag for shellcdintegration (mqhcdzsh helper) -
--list-reposflag -
--raw-intentflag for debugging model output -
OLLAMA_URLandOLLAMA_MODELenvironment variable overrides - Symlink-safe bin wrapper via
python3 os.path.realpath