From 64c503679c5dcdc70bda0608b626c8824dfdc2fc Mon Sep 17 00:00:00 2001 From: overseek944 Date: Thu, 19 Mar 2026 01:20:18 +0530 Subject: [PATCH] chore: update .gitignore and remove obsolete decision artifacts - Added .geval/ to .gitignore to prevent committing generated decision artifacts. - Deleted outdated decision artifact files to clean up the repository and maintain relevance. --- .gitignore | 3 ++ .../decisions/2026-03-18T18:40:04Z.json | 14 -------- .../decisions/2026-03-18T18:53:33Z.json | 32 ------------------- .../decisions/2026-03-18T18:53:37Z.json | 25 --------------- geval/src/artifact/writer.rs | 9 ++++-- 5 files changed, 9 insertions(+), 74 deletions(-) delete mode 100644 geval/.geval/decisions/2026-03-18T18:40:04Z.json delete mode 100644 geval/.geval/decisions/2026-03-18T18:53:33Z.json delete mode 100644 geval/.geval/decisions/2026-03-18T18:53:37Z.json diff --git a/.gitignore b/.gitignore index a9d0228..6ed291c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Rust target/ +# Geval decision artifacts (generated by geval check; avoid committing — Windows disallows : in filenames) +.geval/ + # Environment .env .env.local diff --git a/geval/.geval/decisions/2026-03-18T18:40:04Z.json b/geval/.geval/decisions/2026-03-18T18:40:04Z.json deleted file mode 100644 index ea8220c..0000000 --- a/geval/.geval/decisions/2026-03-18T18:40:04Z.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "artifact_version": "1", - "geval_version": "0.1.2", - "policy_name": "demo-contract", - "policy_version": "1.0.0", - "signals_name": "demo-signals", - "signals_version": "1.0.0", - "policy_hash": "7664d9d21340214b7b6342bb7b90db6ec3c9f546ea4c8dd35a6cb154fa3c655f", - "signals_hash": "344a3d19b3b0241f3a36d817d0a6ce4d3194bd75172353b8207ebcc6c90fc8b2", - "decision": "BLOCK", - "matched_rule": "business_block", - "timestamp": "2026-03-18T18:40:04Z", - "approval": null -} \ No newline at end of file diff --git a/geval/.geval/decisions/2026-03-18T18:53:33Z.json b/geval/.geval/decisions/2026-03-18T18:53:33Z.json deleted file mode 100644 index 74a8c60..0000000 --- a/geval/.geval/decisions/2026-03-18T18:53:33Z.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "artifact_version": "2", - "geval_version": "0.1.2", - "contract_name": "release-gate", - "contract_version": "1.0.0", - "contract_hash": "c969102e3d85f861eef2f28c19d619775275adb1830bafb16276e93b9f032a4d", - "signals_name": "my-signals", - "signals_version": "1.0.0", - "signals_hash": "77b6fe14da32a7a2262580067ef84258acd839643b8c7e758f4348008307519e", - "combine_rule": "all_pass", - "policy_results": [ - { - "policy_path": "policies/security.yaml", - "policy_name": "security", - "policy_version": "1.0.0", - "policy_hash": "78cdf683db7d3a416717d1fb9627075f47c6a9154eadda0b237d5d0eb9248347", - "outcome": "PASS" - }, - { - "policy_path": "policies/quality.yaml", - "policy_name": "quality", - "policy_version": "1.0.0", - "policy_hash": "8bf934d103cdcbd4a81cdc1bdddf20cb7114c030be70ea1b1ba3ea39188358c9", - "outcome": "BLOCK", - "matched_rule": "block_engagement_drop" - } - ], - "combined_decision": "BLOCK", - "combined_matched_rule": "policies/quality.yaml:block_engagement_drop", - "timestamp": "2026-03-18T18:53:33Z", - "approval": null -} \ No newline at end of file diff --git a/geval/.geval/decisions/2026-03-18T18:53:37Z.json b/geval/.geval/decisions/2026-03-18T18:53:37Z.json deleted file mode 100644 index 9695f80..0000000 --- a/geval/.geval/decisions/2026-03-18T18:53:37Z.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "artifact_version": "2", - "geval_version": "0.1.2", - "contract_name": "demo", - "contract_version": "1.0.0", - "contract_hash": "61e788400405fb9aa92868aefe5b4ecfc4c29118232aa7bbb7df1df2d2ef307b", - "signals_name": "demo-signals", - "signals_version": "1.0.0", - "signals_hash": "344a3d19b3b0241f3a36d817d0a6ce4d3194bd75172353b8207ebcc6c90fc8b2", - "combine_rule": "all_pass", - "policy_results": [ - { - "policy_path": "policy.yaml", - "policy_name": "demo-contract", - "policy_version": "1.0.0", - "policy_hash": "7664d9d21340214b7b6342bb7b90db6ec3c9f546ea4c8dd35a6cb154fa3c655f", - "outcome": "BLOCK", - "matched_rule": "business_block" - } - ], - "combined_decision": "BLOCK", - "combined_matched_rule": "policy.yaml:business_block", - "timestamp": "2026-03-18T18:53:37Z", - "approval": null -} \ No newline at end of file diff --git a/geval/src/artifact/writer.rs b/geval/src/artifact/writer.rs index 012d144..32e9233 100644 --- a/geval/src/artifact/writer.rs +++ b/geval/src/artifact/writer.rs @@ -70,8 +70,11 @@ pub fn write_decision_artifact( let decisions_dir = dir.join(".geval").join("decisions"); std::fs::create_dir_all(&decisions_dir) .with_context(|| format!("create {}", decisions_dir.display()))?; - let ts = Utc::now().format("%Y-%m-%dT%H:%M:%SZ"); - let filename = format!("{}.json", ts); + let now = Utc::now(); + let ts_iso = now.format("%Y-%m-%dT%H:%M:%SZ").to_string(); + // Windows does not allow ':' in filenames; use dashes in time part for the filename only. + let ts_filename = now.format("%Y-%m-%dT%H-%M-%SZ"); + let filename = format!("{}.json", ts_filename); let path = decisions_dir.join(&filename); let policy_results: Vec = result @@ -107,7 +110,7 @@ pub fn write_decision_artifact( policy_results, combined_decision: combined_decision_str.to_string(), combined_matched_rule: result.combined_decision.matched_rule.clone(), - timestamp: ts.to_string(), + timestamp: ts_iso, approval, };