You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Update CONTRIBUTING.md with CI runner guidelines and desktop tray approval file management; enhance TASK.md with progress on Tauri integration and agent harness documentation; improve VS Code extension with new command for writing harness summaries; refine CLI with local HTTP fixture for integration testing
This directory is reserved for **SWE-bench**, **Terminal-Bench**, or other external task slices.
4
+
5
+
- Local baseline: `./scripts/phase5-smoke.sh` (set `CANTRIK_BENCH_HARNESS=1` when wiring a runner).
6
+
- CI: see [`.github/workflows/benchmark-harness.yml`](../.github/workflows/benchmark-harness.yml) (`workflow_dispatch`, does not gate the main Rust job).
7
+
- Upstream SWE-bench: clone or submodule [https://github.com/princeton-nlp/SWE-bench](https://github.com/princeton-nlp/SWE-bench) into a subdirectory here in a follow-up iteration.
8
+
9
+
Do not commit large datasets to this repo without an explicit maintainer decision.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+12-2Lines changed: 12 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,15 @@ Untuk menambah entri di [`apps/cantrik-site/static/registry/recipes.json`](apps/
81
81
- Set `sandbox.level = "container"`**hanya** jika operator siap: butuh biner `runsc` dan kebijakan host.
82
82
- Set env `CANTRIK_RUNSC_BIN` ke path `runsc`. Opsional: `CANTRIK_RUNSC_RUN_ARGS` — token dipisah spasi yang disisipkan setelah `runsc run` (contoh: `--network=none` jika didukung setup Anda).
83
83
- Tanpa env tersebut, level `container` gagal dengan pesan jelas (lebih aman daripada mengeksekusi tanpa isolasi yang dimaksud).
84
+
-**CI:** runner GitHub Actions default tidak menyediakan `runsc` atau izin privileged; gunakan runner self-hosted atau abaikan job khusus sampai kebijakan infra jelas. Validasi lokal dengan `CANTRIK_RUNSC_BIN` tetap menjadi tanggung jawab operator.
85
+
86
+
### Desktop tray (Tauri) — file flag approval
87
+
88
+
Companion [`apps/cantrik-tauri`](apps/cantrik-tauri/) memantau file yang sama dengan daemon/tray Rust:
89
+
90
+
- Default: `data_local_dir()/cantrik/approval-pending.flag` (biasanya `~/.local/share/cantrik/approval-pending.flag` pada Linux).
91
+
- Override penuh: env `CANTRIK_APPROVAL_FLAG_PATH` (path absolut atau relatif ke cwd proses tray).
92
+
- Agar selaras dengan merge config CLI: set `CANTRIK_PROJECT_ROOT` ke root repo; Tauri membaca `~/.config/cantrik/config.toml` lalu `.cantrik/cantrik.toml` untuk field `[background].approval_flag_path` (proyek menimpa global).
84
93
85
94
### Self-improvement (safe profile)
86
95
@@ -90,6 +99,7 @@ Menjalankan Cantrik pada **repo Cantrik sendiri** untuk saran perbaikan:
90
99
- Anggap biaya API dan risiko prompt injection dari konten repo; dokumentasikan asumsi di issue/PR.
91
100
- Otomatisasi penuh “self-rewrite” tetap di backlog hingga ada gate produk (tes, approval, rollback).
92
101
-**Dry-run skrip:**[`scripts/self-improve-dry-run.sh`](scripts/self-improve-dry-run.sh) menjalankan satu `cantrik ask` read-only pada repo (tanpa `--approve`); gunakan sebagai langkah manual sebelum otomasi patch.
102
+
-**Gate sebelum otomasi patch (MVP):** wajibkan dry-run + review manusia pada diff; batasi konteks/token di config; otomasi PR hanya dari **fork** atau branch eksperimen; tidak ada loop tanpa henti tanpa human-in-the-loop.
93
103
94
104
### SWE constrained workflow (manual checklist)
95
105
@@ -100,15 +110,15 @@ Alur terbatas untuk satu issue publik + satu repo lokal:
100
110
3. Opsional: `--experiment` — masih membutuhkan `--approve`; menjalankan mode experiment (writes + tes + revert) — review diff sebelum commit.
101
111
4.`cantrik pr create --approve` atau alur Git manual; tidak ada jaminan “high reliability” sampai ada tes integrasi produk.
102
112
103
-
**Kebijakan / QA produk (rantai `fix`):** flag `--run-agents` / `--run-experiment` wajib dipasangkan dengan `--approve` dan `--fetch`; invariant ini dites di unit test (`fix_cmd::validate_fix_flags`). Tes integrasi jaringan penuh tetap manual / backlog hingga ada fixture otomatis.
113
+
**Kebijakan / QA produk (rantai `fix`):** flag `--run-agents` / `--run-experiment` wajib dipasangkan dengan `--approve` dan `--fetch`; invariant ini dites di unit test (`fix_cmd::validate_fix_flags`). Tes integrasi **tanpa LLM**: `fix_cmd::fetch_integration::fix_approve_fetch_reaches_local_http` (wiremock) + workflow [`.github/workflows/swe-e2e-smoke.yml`](.github/workflows/swe-e2e-smoke.yml).
104
114
105
115
**Definisi “high reliability” (SWE otonom penuh):** lihat template issue [SWE E2E reliability](.github/ISSUE_TEMPLATE/swe_e2e_reliability.md) — minimal satu skenario E2E terotomatisasi sebelum mengklaim item backlog terkait selesai.
106
116
107
117
### Phase 5 triage (contributors)
108
118
109
119
-**Tree-sitter:** lihat [`docs/tree-sitter-language-extensions.md`](docs/tree-sitter-language-extensions.md) (kompatibilitas grammar vs versi `tree-sitter` workspace); satu bahasa per PR.
110
120
-**Sandbox enterprise (gVisor / Firecracker):** titik masuk ada di `crates/cantrik-core/src/tool_system/sandbox.rs`; butuh desain admin + CI khusus.
111
-
-**Hybrid SSH / cloud executor:** RFC [`docs/rfc-hybrid-ssh-executor.md`](docs/rfc-hybrid-ssh-executor.md); implementasi setelah threat model disetujui.
121
+
-**Hybrid SSH / cloud executor:** RFC [`docs/rfc-hybrid-ssh-executor.md`](docs/rfc-hybrid-ssh-executor.md); MVP CLI: `cantrik exec --remote` + `[remote_exec]`. **Sync workspace (manual dulu):** gunakan `rsync`/`scp` dengan `--dry-run` lalu review; setelah tree remote cocok, jalankan `cantrik exec --remote --approve -- …` di host tujuan. Otomatisasi sync dengan `--approve` = backlog terpisah (RFC).
-**Agent harness artefak:**`cantrik status --write-harness-summary` menulis `.cantrik/session-harness-summary.json` (payload job + `generated_at_unix`) untuk di-attach ke CI atau dashboard eksternal.
-[x]**Distribusi matang** (MVP proses) — instruksi maintainer per tag: PKGBUILD / winget di [CONTRIBUTING.md](CONTRIBUTING.md) § *Distribusi*; `winget validate` di CI; **Nix** = DoD devShell-only ([`packaging/nix/README.md`](packaging/nix/README.md), tanpa derivasi `nix build` penuh sampai iterasi flake).
373
373
-[x]**VS Code polish** — perintah *Run in workspace* (`cantrik.runInWorkspace` → `doctor` dengan cwd folder); `cantrik.executablePath` dipakai untuk status bar + perintah palette.
374
-
-[x]**Tauri + approval UX** — polling `approval-pending.flag` di `data_local_dir/cantrik/` sama dengan [`cantrik-tray`](apps/cantrik-tray/) ([`apps/cantrik-tauri`](apps/cantrik-tauri/)). **Follow-up:** baca `[background].approval_flag_path` dari config di companion (bukan hanya default path).
374
+
-[x]**Tauri + approval UX** — polling flag; baca `CANTRIK_APPROVAL_FLAG_PATH`, lalu `[background].approval_flag_path` dari `~/.config/cantrik/config.toml` + opsional `CANTRIK_PROJECT_ROOT` → `.cantrik/cantrik.toml` ([`apps/cantrik-tauri`](apps/cantrik-tauri/)); fallback share dir sama [`cantrik-tray`](apps/cantrik-tray/).
375
375
-[x]**Health mendalam** — `cantrik health --sarif` (keluaran SARIF 2.1.0 ke stdout); gate CI terpisah tidak wajib (opsional bila tim butuh).
376
376
377
377
### Phase 5 — Maturity & Excellence
378
378
379
379
-[ ]**Full autonomous SWE-agent** — end-to-end fix GitHub issues dengan reliabilitas tinggi
-[x] Agregat multi-sesi (MVP): `cantrik status --write-harness-summary` → `.cantrik/session-harness-summary.json`. **Ditunda:** UI kaya di luar JSON statis.
386
+
-[x] Agregat multi-sesi (MVP): `cantrik status --write-harness-summary` → `.cantrik/session-harness-summary.json`.
387
+
-[x] Dokumentasi hub: [`/docs/agent-harness`](apps/cantrik-site/src/routes/docs/agent-harness/+page.svelte); VS Code: `cantrik.writeHarnessSummary`. **Ditunda:** UI kaya interaktif di luar JSON statis.
-[x] Kebijakan + invariant flag di [CONTRIBUTING.md](CONTRIBUTING.md) + unit test `fix_cmd::validate_fix_flags` / `is_github_issue_url`. **Ditunda:** integrasi jaringan otomatis tanpa LLM fixture.
411
+
-[x] Kebijakan + invariant flag di [CONTRIBUTING.md](CONTRIBUTING.md) + unit test `fix_cmd::validate_fix_flags` / `is_github_issue_url`.
412
+
-[x] Integrasi HTTP lokal tanpa LLM: `fix_cmd::fetch_integration` (wiremock). **Ditunda:** skenario fetch terhadap host nyata terpantau / katalog fixture besar.
407
413
-[ ]**Sandbox enterprise** (gVisor / Firecracker)
408
414
-[x] Dokumentasi + arah di [`sandbox.rs`](crates/cantrik-core/src/tool_system/sandbox.rs); level `container` = placeholder.
409
-
-[x] Hook `CANTRIK_RUNSC_BIN` / opsional `CANTRIK_RUNSC_RUN_ARGS` untuk `sandbox.level = "container"` + dokumentasi admin ([CONTRIBUTING.md](CONTRIBUTING.md)). **Ditunda:** CI dengan runsc, micro-VM penuh.
0 commit comments