planr 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,7 @@ This package defines Planr as a production-grade, local-first planning and execu
16
16
  - AI_SPEC.md: agent behavior, prompts, context, and evals.
17
17
  - SAFETY_PRIVACY_SECURITY.md: data, privacy, security, and tool execution boundaries.
18
18
  - API_AND_DATA_MODEL.md: project, plan, map, item, log, review, and API contracts.
19
+ - EVAL_CONTRACT_V1.md: frozen EvalSuite, evidence, v1.1 attempt-lineage and efficiency metrics, verdict, reason, CLI/MCP, database, and safety contract.
19
20
  - CLIENT_IMPLEMENTATION_SPEC.md: CLI, TUI, editor, and agent-client surfaces.
20
21
  - BACKEND_IMPLEMENTATION_SPEC.md: local service, MCP server, HTTP/SSE, and storage implementation.
21
22
  - ANALYTICS_OBSERVABILITY_SPEC.md: no-content telemetry, local logs, and diagnostics.
@@ -1,5 +1,7 @@
1
1
  # Technical Architecture
2
2
 
3
+ Eval Contract v1 is frozen in [EVAL_CONTRACT_V1.md](EVAL_CONTRACT_V1.md). Eval implementation work must preserve its ownership split: repository manifests are authored inputs, SQLite owns immutable eval evidence, and Planr map state remains authoritative for work closure.
4
+
3
5
  ## Architecture Goals
4
6
 
5
7
  - REQ-ARCH-001: Keep item state, picks, worker runtime state, approval gates, links, log, reviews, and events in one local SQLite source of truth.
@@ -2,12 +2,12 @@
2
2
 
3
3
  Candidate produced on 2026-07-20 in an isolated local workspace:
4
4
 
5
- - Workspace: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2`
6
- - Source clone: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/release-candidate-src`
7
- - Local bare remote: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/local-origin.git`
8
- - Config-proof rerun source clone: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/release-candidate-src`
9
- - Config-proof rerun local bare remote: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/local-origin.git`
10
- - Config-proof hash snapshots: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence`
5
+ - Workspace: `$HOME/projects/planr-dogfood/release-v1.5.2`
6
+ - Source clone: `$HOME/projects/planr-dogfood/release-v1.5.2/release-candidate-src`
7
+ - Local bare remote: `$HOME/projects/planr-dogfood/release-v1.5.2/local-origin.git`
8
+ - Config-proof rerun source clone: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/release-candidate-src`
9
+ - Config-proof rerun local bare remote: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/local-origin.git`
10
+ - Config-proof hash snapshots: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence`
11
11
  - Public side effects: none. The candidate clone's `origin` points to the local bare remote, and the public `origin` check from this repository returned no `v1.5.2` tag.
12
12
 
13
13
  ## Identity
@@ -72,15 +72,15 @@ a1e27e1cfb3d9d540dfe05f5d1212ee98be97b1f48e203d48209e31243383ba3 README.md
72
72
  - `cargo test`: 71 unit tests, 67 e2e tests, and 3 routing ownership tests passed.
73
73
  - `npm pack --dry-run`: reported `planr@1.5.2`, 65 files, shasum `a3903ce5658be6f6140321232885f86f6515ae70`.
74
74
  - `scripts/security-local.sh`: betterleaks found no leaks; Trivy reported 0 vulnerabilities for `Cargo.lock` and `pnpm-lock.yaml`.
75
- - Pushed `main` and `v1.5.2` only to `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/local-origin.git`.
75
+ - Pushed `main` and `v1.5.2` only to `$HOME/projects/planr-dogfood/release-v1.5.2/local-origin.git`.
76
76
  - `scripts/build-release.sh`: built `dist/planr-darwin-arm64.tar.gz`.
77
77
  - `npm pack`: created `planr-1.5.2.tgz` locally; no npm publish was run.
78
78
  - Config-proof rerun:
79
- - `scripts/release.sh 1.5.2 'standalone Planr core with optional Switchloom handoff'`: 71 unit tests, 67 e2e tests, and 3 routing ownership tests passed; betterleaks found no leaks; Trivy reported 0 vulnerabilities; pushed only to `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/local-origin.git`.
79
+ - `scripts/release.sh 1.5.2 'standalone Planr core with optional Switchloom handoff'`: 71 unit tests, 67 e2e tests, and 3 routing ownership tests passed; betterleaks found no leaks; Trivy reported 0 vulnerabilities; pushed only to `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/local-origin.git`.
80
80
  - `scripts/build-release.sh`: built `dist/planr-darwin-arm64.tar.gz`.
81
81
  - `npm pack`: created `planr-1.5.2.tgz` locally; no npm publish was run.
82
82
  - `target/release/planr --version` and `node npm/bin/planr.js --version`: both reported `planr 1.5.2`.
83
- - `git tag -l v1.5.2`: returned no local tag in `/Users/kregenrek/projects/planr`.
83
+ - `git tag -l v1.5.2`: returned no local tag in `$HOME/projects/planr`.
84
84
  - `git ls-remote --heads --tags origin 'v1.5.2'`: returned no public remote ref.
85
85
  - Candidate clone artifact inventory: no Switchloom files, no legacy routing-owner directories, and no routing manifests were present.
86
86
 
@@ -89,44 +89,39 @@ a1e27e1cfb3d9d540dfe05f5d1212ee98be97b1f48e203d48209e31243383ba3 README.md
89
89
  No release command targeted user/global host config files. The config-proof rerun captured hashes immediately before and after each release-owned run, stored without file contents:
90
90
 
91
91
  - `scripts/release.sh`
92
- - Before: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-release-sh.txt`
93
- - After: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-release-sh.txt`
94
- - Equality proof: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-release-sh-equality.txt` records `config hashes unchanged across scripts/release.sh`.
92
+ - Before: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-release-sh.txt`
93
+ - After: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-release-sh.txt`
94
+ - Equality proof: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-release-sh-equality.txt` records `config hashes unchanged across scripts/release.sh`.
95
95
  - `scripts/build-release.sh`
96
- - Before: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-build-release.txt`
97
- - After: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-build-release.txt`
98
- - Equality proof: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-build-release-equality.txt` records `config hashes unchanged across scripts/build-release.sh`.
96
+ - Before: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-build-release.txt`
97
+ - After: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-build-release.txt`
98
+ - Equality proof: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-build-release-equality.txt` records `config hashes unchanged across scripts/build-release.sh`.
99
99
  - `npm pack`
100
- - Before: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-npm-pack.txt`
101
- - After: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-npm-pack.txt`
102
- - Equality proof: `/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-npm-pack-equality.txt` records `config hashes unchanged across npm pack`.
100
+ - Before: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-before-npm-pack.txt`
101
+ - After: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-after-npm-pack.txt`
102
+ - Equality proof: `$HOME/projects/planr-dogfood/release-v1.5.2/config-proof/evidence/config-npm-pack-equality.txt` records `config hashes unchanged across npm pack`.
103
103
 
104
- Every before/after snapshot contains the same hashes:
105
-
106
- - `/Users/kregenrek/.codex/config.toml`: `82224997e7d4d5147f892a8aa12f7f5f04e77c38267da6ba1274a9267b23f040`
107
- - `/Users/kregenrek/.claude/settings.json`: `99a0eb17993d0dd0c952df03bec38d284fd119a9b0ed928f3201b1792224049f`
108
- - `/Users/kregenrek/.claude.json`: `a5f901ce3b38943ed2591333b4cb6dbab0cab101f8d02ea348fc476021f55afb`
109
- - `/Users/kregenrek/.cursor/mcp.json`: `cf7217adfcb48b532dfdbced62ca68eab4c60996ef38d510a8efb3d286ce5baf`
104
+ Every before/after snapshot contains matching hashes. Machine-specific paths and fingerprints are intentionally omitted from this public evidence file.
110
105
 
111
106
  ## Switchloom v0.2.1 Optional Dogfood Evidence
112
107
 
113
108
  Fresh non-replay dogfood ran on 2026-07-20 with the release-candidate Planr v1.5.2 binary and exact public Switchloom v0.2.1 bytes. The durable local audit receipt is:
114
109
 
115
- - Receipt: `/private/tmp/planr-switchloom-cross-product-QEvWps/oracle-receipt.json`
110
+ - Receipt: `/private/tmp/planr-switchloom-cross-product-<run>/oracle-receipt.json`
116
111
  - Receipt SHA-256: `c01f4b980977a15028f7a82cc6fc237aa50fb4b35310871ba3ad245ec1c699ee`
117
112
  - Mode/result: `live`, `ok=true`
118
- - Fresh root: `/private/tmp/planr-switchloom-cross-product-QEvWps`
113
+ - Fresh root: `/private/tmp/planr-switchloom-cross-product-<run>`
119
114
 
120
115
  Replayable command:
121
116
 
122
117
  ```bash
123
- PLANR_WORKER_ID=switchloom_optional_dogfood PLANR_BIN=/Users/kregenrek/projects/planr-dogfood/release-v1.5.2/release-candidate-src/target/release/planr SWITCHLOOM_TARBALL=/private/tmp/switchloom-public-0.2.1.MN008L/switchloom-0.2.1.tgz PLANR_ORACLE_TEMP_PARENT=/private/tmp node scripts/verify-switchloom-cross-product.mjs
118
+ PLANR_WORKER_ID=switchloom_optional_dogfood PLANR_BIN=$HOME/projects/planr-dogfood/release-v1.5.2/release-candidate-src/target/release/planr SWITCHLOOM_TARBALL=/path/to/switchloom-0.2.1.tgz PLANR_ORACLE_TEMP_PARENT=/private/tmp node scripts/verify-switchloom-cross-product.mjs
124
119
  ```
125
120
 
126
121
  Public Switchloom package identity:
127
122
 
128
123
  - Package: `switchloom@0.2.1`
129
- - Tarball: `/private/tmp/switchloom-public-0.2.1.MN008L/switchloom-0.2.1.tgz`
124
+ - Tarball: `/path/to/switchloom-0.2.1.tgz`
130
125
  - npm SHA-1 shasum: `e813283f54d0d64b5fd4835e17687aaaf3b0a6cb`
131
126
  - SHA-512 integrity: `sha512-vUKHxYXHt7Sx7MkYQz5MRZ0Ll544iHoadHGCgvJPUYkpUzQWtzjt1o3xhyeQwExCA6tuLQ5vZnLPz+fO5uMiXg==`
132
127
  - Local SHA-256: `028176063ce20b4981aa4e13199b25169b2f8296f648eeeec9291e6955e7549a`
@@ -137,10 +132,10 @@ Host routing evidence from the receipt:
137
132
  - Maker role/model/effort: `model_routing_terra_high`, `gpt-5.6-terra`, `high`
138
133
  - Reviewer role/model/effort: `model_routing_sol_high`, `gpt-5.6-sol`, `high`
139
134
  - `fork_turns_all_used`: `false`
140
- - Public Codex JSONL: `/private/tmp/planr-switchloom-cross-product-QEvWps/codex-live.jsonl`
141
- - Parent rollout: `/Users/kregenrek/.codex/sessions/2026/07/20/rollout-2026-07-20T20-05-19-019f80b4-2e89-7470-a432-6937ddcbc7ac.jsonl`
142
- - Maker rollout: `/Users/kregenrek/.codex/sessions/2026/07/20/rollout-2026-07-20T20-05-50-019f80b4-a7d3-73d1-bf34-9762ad7d9474.jsonl`
143
- - Reviewer rollout: `/Users/kregenrek/.codex/sessions/2026/07/20/rollout-2026-07-20T20-06-37-019f80b5-5d7f-7441-97f3-c743d97e0a8c.jsonl`
135
+ - Public Codex JSONL: `/private/tmp/planr-switchloom-cross-product-<run>/codex-live.jsonl`
136
+ - Parent rollout: local Codex session (path omitted)
137
+ - Maker rollout: local Codex session (path omitted)
138
+ - Reviewer rollout: local Codex session (path omitted)
144
139
 
145
140
  Fresh Planr audit and uninstall evidence:
146
141
 
@@ -148,15 +143,12 @@ Fresh Planr audit and uninstall evidence:
148
143
  - Fresh oracle item: `i-build-first-slice-5c85`
149
144
  - Audit result: holds with clauses `items_settled`, `reviews_complete`, `approvals_clear`, and `verification_logged`.
150
145
  - Post-uninstall result: Switchloom uninstall removed only managed files and unrouted Planr still worked; the script reran the Planr audit after uninstall and required `holds=true`.
151
- - Requested-only routing metadata was rejected as effective proof: `/private/tmp/planr-switchloom-cross-product-QEvWps/requested-only-route-audit.json`.
146
+ - Requested-only routing metadata was rejected as effective proof: `/private/tmp/planr-switchloom-cross-product-<run>/requested-only-route-audit.json`.
152
147
 
153
148
  Protected configuration and source inventory proof:
154
149
 
155
- - `/Users/kregenrek/.codex/config.toml`: `82224997e7d4d5147f892a8aa12f7f5f04e77c38267da6ba1274a9267b23f040`
156
- - `/Users/kregenrek/.claude/settings.json`: `99a0eb17993d0dd0c952df03bec38d284fd119a9b0ed928f3201b1792224049f`
157
- - `/Users/kregenrek/.claude.json`: `a5f901ce3b38943ed2591333b4cb6dbab0cab101f8d02ea348fc476021f55afb`
158
- - `/Users/kregenrek/.cursor/mcp.json`: `cf7217adfcb48b532dfdbced62ca68eab4c60996ef38d510a8efb3d286ce5baf`
159
- - Switchloom source root: `/Users/kregenrek/projects/model-routing`
150
+ - User configuration: unchanged; machine-specific paths and fingerprints omitted
151
+ - Switchloom source root: sibling `model-routing` checkout (or `SWITCHLOOM_SOURCE_ROOT`)
160
152
  - Switchloom source HEAD: `191f6aac91ff0f73fcae68ab269eb2d89c9e76e9`
161
153
  - Switchloom source status SHA-256: `2ca939e3e14ba8971210e93152120323641d21b0ac465b02a85335860b01758c`
162
154
  - Switchloom tracked files SHA-256: `0292bca86e80e9c63d5848984cab229b17df6e1162f1b0d8ec577474a9ac3591`
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "planr",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Local-first planning and execution coordination for coding agents.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -20,6 +20,9 @@
20
20
  "docs"
21
21
  ],
22
22
  "scripts": {
23
+ "security:check": "sh scripts/security-local.sh",
24
+ "security:privacy": "sh scripts/check-repository-privacy.sh",
25
+ "security:staged": "node scripts/hooks/block-forbidden-staged-files.mjs",
23
26
  "build:native": "cargo build --release",
24
27
  "test": "cargo test",
25
28
  "pack:check": "npm pack --dry-run",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "planr",
3
3
  "description": "Skill-driven planning and execution loop for coding agents: one planr entry point, an autonomous planr-loop, and evidence-backed task graph skills powered by the planr CLI.",
4
- "version": "1.6.0",
4
+ "version": "1.7.0",
5
5
  "author": {
6
6
  "name": "instructa"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "planr",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Skill-driven planning and execution loop for coding agents: one $planr entry point, an autonomous $planr-loop, and evidence-backed task graph skills powered by the planr CLI.",
5
5
  "author": {
6
6
  "name": "instructa",