v0.74.0 β Zero Ambiguity
π¦ Nika v0.74.0
Semantic YAML Workflow Engine for AI β Schema
nika/workflow@0.12
What's Changed
Added
schedule:wired into AST pipeline βnika checknow validates schedule expressions (cron, timezone, overlap). Invalid schedules produce NIKA-144 errors at analysis time.- Overlap policies
queueandreplaceβoverlap: queueallows concurrent runs.overlap: replacecancels the active job before firing. Previously onlyskipwas functional. - Serve reconciliation β
nika servenow upserts YAML-declared schedules into DB at startup + every 60s. 5 reconciliation rules: insert new, update changed cron, delete orphaned yaml-source, keep cli-source, sync paused state. update_schedule_cron()storage method β Targeted cron/paused/next_run_at UPDATE preserving run history.- Run frequency estimation β
runs_per_day()andformat_run_estimate()show runs/day and runs/month in schedule card, list, and creation celebration. - History dots (ββ) β
nika schedule listandnika schedule showdisplay colored run history dots with pass/fail summary. - 24h timeline view β
nika schedule list --timelinerenders ASCII grid showing when schedules fire, with overlap warnings. - Did-you-mean for schedule names β Levenshtein-based fuzzy matching on NIKA-283 not-found errors suggests closest schedule name.
- Enhanced micro-copy β "back in action!" on resume, "Historical runs preserved" on remove, resume/pause hints.
Fixed
- stdin pipe never written β Scheduled jobs with
inputs_jsonhung for 1h timeout. Now writes args to stdin before handing child to monitor task. - Timezone ignored in
next_run_atβ Schedule creation and fire recomputation always used UTC. Now appliessched.timezoneviachrono_tzwhen computing next occurrence. list_jobs_for_workflowLIMIT 10 β Overlap detection missed active jobs when workflow had 10+ historical runs. Raised to LIMIT 100.- TOCTOU double-fire guard β
update_schedule_after_firenow usesWHERE last_run_at < ?1to prevent concurrent ticks from double-firing. inputs_jsonforwarded tosubmit()β Scheduled workflows now receive their configured inputs (was alwaysNone).- Reconciler name collision β
a/b.nika.yamlvsa-b.nika.yamlno longer collide. Uses::separator. - Reconciler
pausedsource β Usesconfig.pausedfrom parser instead of raw header text scan (prevented false positives from comments).
Testing
- Protocol roundtrip tests for 9 schedule variants (6 request + 3 response).
- Boundary tests:
duration_to_cron(0h/24h/0m/60m/0d/29d),parse_hhmm,humanize_relative. - E2E AST pipeline tests: valid cron, invalid cron, object form, unknown key regression.
- Storage
update_schedule_crontest preserving run history. - Overlap:replace integration test with cancel verification.
- Levenshtein +
find_closesttests. - Timeline slot tests (daily, hourly, every-2h, weekday, invalid, multiple-per-hour).
π¦ Install
| Method | Command | |
|---|---|---|
| π | Quick | curl -fsSL https://raw.githubusercontent.com/supernovae-st/nika/main/install.sh | sh |
| πΊ | Homebrew | brew install supernovae-st/tap/nika |
| π¦ | npm | npx @supernovae-st/nika |
| π¦ | Cargo | cargo install nika |
| π³ | Docker | docker run --rm ghcr.io/supernovae-st/nika:0.74.0 |
| π» | VS Code | Search "Nika" or ext install supernovae.nika-lang |
| πͺ | Scoop | scoop bucket add nika https://github.com/supernovae-st/scoop-nika && scoop install nika |
| π§ | AUR | yay -S nika-bin |
π₯ Downloads
| Platform | Architecture | File | Size |
|---|---|---|---|
| π macOS | Apple Silicon | nika-macos-arm64-0.74.0.tar.gz |
44M |
| π macOS | Intel | nika-macos-x64-0.74.0.tar.gz |
48M |
| π§ Linux | x64 | nika-linux-x64-0.74.0.tar.gz |
48M |
| π§ Linux | ARM64 | nika-linux-arm64-0.74.0.tar.gz |
34M |
| πͺ Windows | x64 | nika-windows-x64-0.74.0.zip |
π All binaries include SHA256 checksums, SLSA provenance, and macOS notarization.
π Available On
| Platform | Link |
|---|---|
| GitHub | v0.74.0 |
| VS Code | supernovae.nika-lang |
| Open VSX | supernovae.nika-lang |
| npm | @supernovae-st/nika |
| crates.io | nika |
| Docker | ghcr.io Β· Docker Hub |
| Homebrew | supernovae-st/tap/nika |
| Scoop | supernovae-st/scoop-nika |
| AUR | nika-bin |
π Stats
| Metric | Value | |
|---|---|---|
| π¦ | Crates | 19 workspace crates |
| π§ͺ | Tests | 10379+ passing |
| π¦ | npm | 6 platform packages |
| π | macOS | Signed + Notarized (Developer ID) |
| π‘οΈ | SLSA | Build provenance attested |
| π³ | Docker | Multi-arch amd64/arm64 + SBOM |
Made with π by SuperNovae Studio β Open Source, AGPL-3.0
Full Changelog: v0.0.0...v0.74.0