Tags: 8-Sync-Dev/su-code
Tags
feat(0.45.0): MCP server.json standard conformance + spec as machine …
…default + /auto gitleaks gate
Enhance the MCP tool to follow the official open spec, ship that standard
as a machine-local default that forces AI adherence, and harden /auto.
`official_install` (marketplace.rs) now projects a registry server.json
(schema 2025-12-11) into an mcp.json descriptor per spec:
- registryType -> runtime: npm->npx -y, pypi->uvx, oci->docker run -i --rm
(+ -e NAME env forwarding), nuget->dnx (was: everything defaulted to npx)
- version pinning: id@version, or img:version for docker (incl. scoped npm
@scope/pkg@ver — fixed a heuristic that skipped pinning for scoped names)
- runtimeArguments + packageArguments rendered (named/positional)
- transport.type: streamable-http/sse package or remote -> {type,url,headers}
- BUGFIX: environmentVariables -> a {NAME:value} MAP, not the array of
descriptors it used to write (unusable mcp.json env for secret-needing servers)
web.rs McpAddBody + api.ts + App.tsx thread env/headers maps end-to-end.
Verified live via the dashboard UI: docker apithreshold (run …-e KEY… img:0.1.0
serve --transport stdio) + pypi armor-mcp@0.6.1 + env map, 0 console errors.
13 unit tests (Tester, mutation-proven).
assets/specs/mcp-server.md (distilled server.json spec) ships in the binary;
ensure_mcp_spec deploys it to ~/.omp/specs/mcp-server.md via harness
global/init/up (byte-stable). A short rule in the always-on APPEND_SYSTEM.md
points every omp session at it — env/headers are maps, runtime from
registryType, pin version, never invent fields.
Reviewed the command + 8sync-engine.ts; independently functional-tested
(verify-gate FAIL->WARN->BLOCK doom-loop, refuse-unverified, advance, commit).
Fixed a gap: engine_advance {commit:true} now runs a gitleaks gate
(gitleaks protect --staged, matching the pre-commit hook) before committing —
an unattended /auto run can't leak a secret when the hook is absent; no-op
when gitleaks isn't installed.
feat(harness): global machine-wide omp rules + engine doom-loop guard… …; v0.44.0 - 8sync harness global [--sweep DIR]: APPEND_SYSTEM + skills + MCP + Anthropic token-optimizer defaults (compaction 50% only-if-unset, byte-stable prefix) machine-wide; --sweep stamps per-project layer into omp projects only - engine: engine_advance refuses unverified tasks (real gate); no-progress detector blocks byte-identical failure streaks (FNV-1a, warn@2 block@3) - overwrite policy explicit: default never clobbers user-owned files; --force only - shared global::global_pass() dedup; docs AGENTS.md/CHANGELOG/help
feat(shot,docs): codegraph canvas capture (?shot=1) + auto-locate rul… …e; English-first README/Pages; v0.43.0 - /codegraph?shot=1: dashboard renders ONLY the React-Flow package graph full-viewport - one big legible image (~2k vision tokens) for 8sync shot; clusters/hotspots/search stay text via /api/codegraph/*. Verified E2E: shot -> locate 'the box labeled skills' -> box [1176,624,1502,735] click(1339,679) lands exactly on the node (LocateAnything-3B, CPU 44s). - Always-read auto-rule (APPEND_SYSTEM + codegraph/image-routing/ locate-anything skills): non-vision models read positions/layout from images via 8sync locate AUTOMATICALLY; zai-vision = what it says, locate = where it is. Deployed + verified in ~/.omp. - README.md + docs/index.html rewritten 100% English-first with 5 fresh leak-checked dashboard screenshots (state/bench/codegraph/models/ marketplace); Pages gallery browser-verified (lang=en, images load). - Release 0.43.0: version bump + CHANGELOG cut.
feat(0.42.0): modality routing + real 8sync shot + dashboard codegrap… …h deep-link - 8sync shot: real headless-Chromium renderer (was a no-op stub); token estimate = ceil(w/28)*ceil(h/28) 28x28 patches (Opus 4.7+ pay-per-pixel). - Modality routing forced across APPEND_SYSTEM + image-routing skill + capabilities.md + --advisor: STRUCTURE -> image; code/exact/line-data -> text. Grounded: the 90% cut is DeepSeek-OCR's encoder (arXiv 2510.18234), not a PNG to Opus/GLM. Measured: STATE.md 0.87x (loses), 12k-edge codegraph ~25x (wins). - Dashboard deep-link: web/src/App.tsx reads ?page=<id> so 8sync shot .../?page=codegraph captures the real graph.
feat(0.41.0): dashboard Marketplace + import/install everywhere
Browser-verified end-to-end against a real project (0 console errors).
New "Marketplace" page (Discover group) in `8sync harness web` — browse,
search, sort (Top/New), one-click install skills & MCP servers from public
registries into the current project:
- MCP catalog merges 4 sources: official registry (registry.modelcontextprotocol.io
REST), Smithery, Glama (JSON APIs), and mcp.so scraped with the pure-Rust
`scraper` crate (HTML DOM, fetched via curl — no reqwest, Rust-first). 135+
deduped entries. Install writes real ~/.omp/agent/mcp.json stdio (npx/uvx) or
remote (http/sse) entries.
- Skills catalog = GitHub repo search ranked by stars; install shells the
existing collection-aware `8sync skill add <url>`.
- 1h-TTL cache under .cache/8sync/marketplace/ (registry maintainers ask
aggregators to poll infrequently).
Import buttons that were plumbing-only until now:
- Skills page: Import (github URL / gh:owner/repo / path:/abs/dir / builtin:name)
+ Update all — `skillAdd`/`skillUpdate` were in the API client with no UI.
- MCP page: Install-from-link (npx/uvx/https remote → mcp.json) + per-server Remove.
- Rules page: Import from a folder or GitHub repo (.md/.mdc, recursive; prefers a
rules/ subdir), shallow-cloned to a RAII temp dir.
Backend: new routes /api/marketplace, /api/mcp/{add,remove}, /api/rules/import
(crates/cli/src/verbs/harness/marketplace.rs + web.rs). New dep scraper 0.20
(pure-Rust html5ever + CSS selectors); HTTP still shells out to curl.
Verified live: MCP install (United States Weather → npx smithery run …) then
Remove; marketplace search "github" → 97 servers; Top/New re-sort; Skills tab
40 GitHub repos; rule import from a folder → 2 files (subdir-scoped).
docs(0.40.0): refresh README + GitHub Pages to current surface; release Roll the untagged work on main (advisor default-on, stale-profile self-heal) into 0.40.0 and bring the docs up to date. README + docs/index.html: - TL;DR / Quick start now lead with the one-liner install → `8sync harness` (one-command bootstrap) → `8sync harness web`. - New Dashboard section documenting the CRUD control surface (models/skills/memory/rules/engines + the Codegraph graph page), with two live screenshots (docs/assets/). - Full harness subcommand table: web, gateway, bench, audit, eval, toolstats, compaction, model. - Added the machine verbs that were missing: bt, clean, theme, bg. - Fixed stale numbers: binary ~5.0 MB (embeds web dashboard FE), 35 bundled skills (was 15). - Landing page: Dashboard nav link + feature card + screenshots (Pages workflow already uploads all of docs/). Also in 0.40.0 (already on main, now released): - Changed: advisor default-on (per-turn rule/tool reviewer). - Fixed: `8sync doctor` self-heals stale profile state entries.
feat(0.36.0): 8sync bg search — wallhaven.cc online search, no API key - New 'bg search <query>' sub-action: searches wallhaven.cc public API (no key, SFW, >=1920x1080). Stages thumbnails, fzf with live kitten icat preview + source link; pick -> download full-res -> add -> set live. - Non-interactive: prints result list (id + resolution + source link). - Sidecar pattern (<thumb>.url/.full) maps a chosen path to its metadata; id+res baked into filename (no --delimiter). RAII TmpGuard cleans temp. - Reuses existing add+set path; no new Rust deps. Completes the bg subsystem.
feat(0.35.0): 8sync bg verb — live wallpaper swap + inline preview - New '8sync bg' verb (show/get/set/list/add): manage kitty background_image at runtime. Inline preview via kitten icat (kitty graphics protocol, same as omp); interactive fzf picker with live image preview for list/set. - Live swap rewrites the background_image line in 8sync.conf + SIGUSR1 reload (no restart). Choice recorded in ~/.config/8sync/wallpaper; setup honors it so re-setup does not clobber. Collection in ~/.config/8sync/wallpapers/. - Zero new Rust deps (kitten/fzf/curl shell-outs). hydectl wallpaper still owns the Hyprland desktop; this owns kitty's in-terminal background_image.
feat(0.34.0): 8sync theme verb + kitty readability fix - New '8sync theme' verb (list/set/show) with 6 curated dark palettes (tokyo-night default, catppuccin-mocha, gruvbox-dark, nord, rose-pine, dracula), each tuned for wallpaper-overlay readability (WCAG-AA contrast). - Live switch via SIGUSR1 reload (no restart, no socket). - Kitty config: structure (8sync.conf) split from palette (8sync-theme.conf); raised background_tint 0.55->0.86; restored allow_remote_control yes. - setup --profile terminal deploys both files; theme persists in ~/.config/8sync/kitty-theme.
PreviousNext