Skip to content

Tags: 8-Sync-Dev/su-code

Tags

v0.45.0

Toggle v0.45.0's commit message
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.

v0.44.0

Toggle v0.44.0's commit message
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

v0.43.0

Toggle v0.43.0's commit message
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.

v0.42.0

Toggle v0.42.0's commit message
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.

v0.41.0

Toggle v0.41.0's commit message
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).

v0.40.0

Toggle v0.40.0's commit message
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.

v0.39.0

Toggle v0.39.0's commit message
v0.39.0 — Codegraph dashboard + harness gateway + zai-vision tool cat…

…alog + 18 research skills

v0.36.0

Toggle v0.36.0's commit message
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.

v0.35.0

Toggle v0.35.0's commit message
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.

v0.34.0

Toggle v0.34.0's commit message
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.