spb/metrika Public
Stata-class statistics, GPU-accelerated by Apple Silicon. Native Swift — no Electron, no Python runtime, no compromises.
Swift 92.4%
HTML 3.3%
R 3%
Shell 1.3%
-
feat(plugins): harden the user-command protocol
…
- fix: script-command verbs were routed AFTER parsing, which rejects unknown verbs — .zyq commands could never run; they now route before the parser with raw macro arguments - .zyq scripts: ado-style 'args name…' declaration with backtick macro substitution (`0', `k', `name'); scratch-variable scripts verified end-to-end against the built-in path - ZQPluginRegistry: verb-keyed native plugin registry; verbs shadowing built-ins rejected at session start; parsed commands validated against the declared ZQSyntaxSpec (varlist/if/in/weights/options) - mutation gating: plugins return a replacement dataset via ZQResult.replacementFrame, installed only under 'mutates: true' — a non-mutating plugin returning one is an error and the dataset is untouched (ZQContext is now a plain value, no writable back-channel) - ZScorePlugin ships as the reference native plugin, registered by the app ('zscore varname' -> standardized z_varname) - CLAUDE.md: document the mlx-swift build quirks (xcodebuild for GPU tests, -skipPackagePluginValidation everywhere) - 87 tests green (swift test and xcodebuild with GPU suites); app builds Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>