ZGO-CORE // ENGINEERING REPORT

// module map · command surface · FFI exports · test status

Home Port Report Source
0.1.0version
3crate-types (rlib · staticlib · cdylib)
139engine commands
4C-ABI exports
87.5%Alfred port coverage

zgo-core is in active development. The figures on this page are derived from the crate source as it stands today (Cargo.toml, src/lib.rs, src/ffi.rs, PORT_REPORT.md): version, crate-types, the dotted commands matched in Engine::invoke, the exported C symbols, and the hand-assessed Alfred coverage. The "planned" column lists work that is not yet implemented — it is a roadmap, not a claim of coverage.

Module map

modulerole todayplanned
lib (Engine)one dotted command surface via Engine::invoke; event sink; id allocation; profile + clipboard persistencemore dispatch coverage as modules grow
modelworkflow · object · connection · variable · feedback · item · arg · icon · mod · text · snippet · theme · profile typesworkflow object config typing per object kind
scriptfilterto_json + parse (JSON & legacy XML) + run_env always on; run_script/run_command behind execper-object Script Filter dispatch, rerun loop
matchercase-insensitive subsequence ranking with word-start / consecutive / case bonuses; filter over itemsknowledge / selection-frequency weighting
vars{query} · {var:NAME} · {clipboard} · {date[:FMT]} · {time} · {uuid} · {allvars} token expansionper-modifier variable scopes, secret masking
websearchbuilt-in search keywords + custom {query} URL templating with RFC 3986 encodingper-site result parsing, suggestion fetch (host side)
clipboardcapped newest-first history with re-copy merge + case-insensitive searchimage/file blob capture (host pasteboard integration)
snippetauto-expansion keyword match (longest trigger) + placeholder expansion (clipboard / date / cursor)per-collection affix editing, keystroke injection (host side)
storeprofile + clipboard JSON persistence (dirs paths)raw binary plist read, multi-profile
importworkflow info.plist-as-JSON import + export; alfredsnippet import.alfredworkflow zip unpack, raw plist parse
ffiC ABI: zgo_init · zgo_invoke · zgo_set_event_callback · zgo_string_freericher event payloads
tauri_plugin (feature tauri)Tauri v2 command (zgo_invoke) + setup; events on zgo-eventmountable webui packaging

Build surfaces

The crate declares crate-type = ["rlib", "staticlib", "cdylib"]. The rlib links natively into Rust/Tauri hosts; the staticlib/cdylib expose the C ABI for non-Rust hosts (header include/zgo_core.h, hand-written, no cbindgen). The default exec feature carries Script Filter / Run Script process spawning; building --no-default-features yields a feedback-only core with no spawn surface that compiles in headless CI — feedback serialization, parsing, matching, token expansion and web-search URL building still work without it. The optional tauri feature adds the Tauri v2 command layer.

Verification

The crate carries in-source unit and integration tests across the engine and its modules: the command surface (version reporting, workflow CRUD + import/export, match filtering, token rendering, web-search URL building, clipboard add/search/clear, feedback parse/render, structured unknown-command errors), plus module-level tests in matcher (word-start ranking, subsequence rejection), vars (token resolution, unknown-left-verbatim, uuid shape), scriptfilter (JSON + legacy XML parse, run-env), snippet (auto-expand match, cursor offset), clipboard, websearch, import and store. Tests for the feedback-only core run without spawning a process and pass identically in a headless Linux CI; the run_script path is feature-gated so the default test path can be built without it.