|
1 | | -;; STATE.scm - Checkpoint/Restore for AI Conversations |
2 | | -;; Project: Munition (chimichanga) |
3 | | -;; Format: Guile Scheme |
| 1 | +;;; STATE.scm — chimichanga |
| 2 | +;; SPDX-License-Identifier: AGPL-3.0-or-later |
| 3 | +;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell |
4 | 4 |
|
5 | | -(define state |
6 | | - '((metadata |
7 | | - (format-version . "1.0") |
8 | | - (created . "2025-12-08") |
9 | | - (updated . "2025-12-08") |
10 | | - (project-name . "Munition") |
11 | | - (repository . "hyperpolymath/chimichanga")) |
| 5 | +(define metadata |
| 6 | + '((version . "0.1.0") (updated . "2025-12-15") (project . "chimichanga"))) |
12 | 7 |
|
13 | | - ;; ========================================================================= |
14 | | - ;; CURRENT POSITION |
15 | | - ;; ========================================================================= |
16 | | - (current-position |
17 | | - (version . "0.1.0-alpha") |
18 | | - (phase . "core-complete") |
19 | | - (completion-percentage . 35) |
20 | | - (status . "in-progress") |
| 8 | +(define current-position |
| 9 | + '((phase . "v0.1 - Initial Setup") |
| 10 | + (overall-completion . 25) |
| 11 | + (components ((rsr-compliance ((status . "complete") (completion . 100))))))) |
21 | 12 |
|
22 | | - (summary . "Core execution framework complete with fuel metering, memory |
23 | | - isolation, forensic capture, and capability-restricted host |
24 | | - functions. RSR Gold compliance achieved. Ready to advance |
25 | | - toward production-grade features.") |
| 13 | +(define blockers-and-issues '((critical ()) (high-priority ()))) |
26 | 14 |
|
27 | | - (implemented |
28 | | - ("Core execution engine with compile → instantiate → execute → cleanup lifecycle") |
29 | | - ("Fuel metering system with configurable allocation and exhaustion handling") |
30 | | - ("Memory isolation - fresh zero-initialized memory per execution") |
31 | | - ("Forensic capture on all failure paths with serialization") |
32 | | - ("Pluggable runtime abstraction (Wasmex/Wasmtime default)") |
33 | | - ("Capability-gated host functions: time, random, logging") |
34 | | - ("Capability validation with risk classification") |
35 | | - ("Comprehensive test suite: unit, integration, benchmarks") |
36 | | - ("RSR Gold compliance: 15+ justfile tasks, SPDX headers, pinned deps") |
37 | | - ("Full documentation: ARCHITECTURE.md, capability_model.md, ROADMAP.md"))) |
| 15 | +(define critical-next-actions |
| 16 | + '((immediate (("Verify CI/CD" . high))) (this-week (("Expand tests" . medium))))) |
38 | 17 |
|
39 | | - ;; ========================================================================= |
40 | | - ;; ROUTE TO MVP v1.0 |
41 | | - ;; ========================================================================= |
42 | | - (mvp-roadmap |
43 | | - (target-version . "1.0.0") |
44 | | - (target-status . "production-ready") |
| 18 | +(define session-history |
| 19 | + '((snapshots ((date . "2025-12-15") (session . "initial") (notes . "SCM files added"))))) |
45 | 20 |
|
46 | | - (milestones |
47 | | - ((version . "0.2.0") |
48 | | - (name . "pooling-and-host-functions") |
49 | | - (completion . 0) |
50 | | - (tasks |
51 | | - ("Instance pooling for pre-compiled/instantiated WASM modules") |
52 | | - ("Enhanced host functions: sandboxed filesystem read") |
53 | | - ("Enhanced host functions: allowlisted HTTP client") |
54 | | - ("Structured logging with capability-controlled output") |
55 | | - ("Improved forensics: stack traces, variable reconstruction") |
56 | | - ("Crash classification and pattern detection"))) |
57 | | - |
58 | | - ((version . "0.3.0") |
59 | | - (name . "resource-control") |
60 | | - (completion . 0) |
61 | | - (tasks |
62 | | - ("Wizer integration for snapshot-and-restore pre-initialization") |
63 | | - ("Configurable memory page limits") |
64 | | - ("Wall-clock timeout integration alongside fuel bounds") |
65 | | - ("Memory allocation bounds before instantiation"))) |
66 | | - |
67 | | - ((version . "1.0.0") |
68 | | - (name . "production-ready") |
69 | | - (completion . 0) |
70 | | - (tasks |
71 | | - ("Independent security audit") |
72 | | - ("Performance optimization pass") |
73 | | - ("API stability guarantee and semantic versioning") |
74 | | - ("Production deployment documentation") |
75 | | - ("Alternative runtime support: Wasmer, WAMR"))))) |
76 | | - |
77 | | - ;; ========================================================================= |
78 | | - ;; KNOWN ISSUES |
79 | | - ;; ========================================================================= |
80 | | - (issues |
81 | | - (code-issues |
82 | | - ((location . "lib/munition.ex:208-215") |
83 | | - (severity . "medium") |
84 | | - (description . "Export/import validation stubbed - returns :ok without checking") |
85 | | - (impact . "Cannot verify WASM modules export required functions before execution")) |
86 | | - |
87 | | - ((location . "lib/munition/host/functions.ex:124") |
88 | | - (severity . "low") |
89 | | - (description . "Log host function does not read message from WASM memory") |
90 | | - (impact . "Logging calls acknowledge but don't capture actual log content")) |
91 | | - |
92 | | - ((location . "lib/munition/instance/manager.ex:100") |
93 | | - (severity . "medium") |
94 | | - (description . "execute_pooled/4 returns {:crash, :not_implemented}") |
95 | | - (impact . "No performance optimization for repeated executions"))) |
96 | | - |
97 | | - (design-considerations |
98 | | - ("Timing attacks possible - execution time varies with input") |
99 | | - ("Side-channel attacks via CPU cache theoretically possible") |
100 | | - ("Memory allocation before instantiation not bounded") |
101 | | - ("Dependent on Wasmtime security advisories for underlying safety"))) |
102 | | - |
103 | | - ;; ========================================================================= |
104 | | - ;; QUESTIONS FOR MAINTAINER |
105 | | - ;; ========================================================================= |
106 | | - (questions |
107 | | - ((id . 1) |
108 | | - (category . "architecture") |
109 | | - (question . "For instance pooling, should pools be global (application-level) |
110 | | - or per-supervisor? Trade-off between resource efficiency and isolation.") |
111 | | - (context . "v0.2.0 planning")) |
112 | | - |
113 | | - ((id . 2) |
114 | | - (category . "security") |
115 | | - (question . "What allowlist strategy for HTTP host function? Domain-based, |
116 | | - URL pattern, or capability token per-endpoint?") |
117 | | - (context . "Host function expansion")) |
118 | | - |
119 | | - ((id . 3) |
120 | | - (category . "priority") |
121 | | - (question . "Should Wizer integration (v0.3.0) be prioritized over instance |
122 | | - pooling if startup latency is the primary bottleneck?") |
123 | | - (context . "Roadmap sequencing")) |
124 | | - |
125 | | - ((id . 4) |
126 | | - (category . "ecosystem") |
127 | | - (question . "Are there specific attenuator languages (Lua, JS, Pony) that |
128 | | - should be reference implementations for v1.0 launch?") |
129 | | - (context . "Ecosystem strategy")) |
130 | | - |
131 | | - ((id . 5) |
132 | | - (category . "compliance") |
133 | | - (question . "Is formal verification (TLA+/Coq) a v1.0 requirement or a |
134 | | - post-1.0 research direction?") |
135 | | - (context . "Scope definition"))) |
136 | | - |
137 | | - ;; ========================================================================= |
138 | | - ;; LONG-TERM ROADMAP |
139 | | - ;; ========================================================================= |
140 | | - (long-term-roadmap |
141 | | - (vision . "Become the definitive capability attenuation framework for safe |
142 | | - execution of untrusted code in the Elixir ecosystem and beyond.") |
143 | | - |
144 | | - (post-v1-features |
145 | | - ((category . "runtime-ecosystem") |
146 | | - (items |
147 | | - ("Wasmer runtime integration") |
148 | | - ("WAMR (WebAssembly Micro Runtime) for embedded") |
149 | | - ("Lunatic runtime exploration for actor model"))) |
150 | | - |
151 | | - ((category . "attenuator-ecosystem") |
152 | | - (items |
153 | | - ("Reference Lua → WASM attenuator") |
154 | | - ("Reference JavaScript → WASM attenuator") |
155 | | - ("Capability-preserving Pony → WASM attenuator"))) |
156 | | - |
157 | | - ((category . "advanced-capabilities") |
158 | | - (items |
159 | | - ("Graduated trust - dynamic capability expansion based on behavior") |
160 | | - ("Capability inference from WASM module analysis") |
161 | | - ("Cross-execution state sharing with explicit grants") |
162 | | - ("Distributed execution across nodes"))) |
163 | | - |
164 | | - ((category . "formal-methods") |
165 | | - (items |
166 | | - ("TLA+ specification of capability model") |
167 | | - ("Coq proofs of isolation guarantees") |
168 | | - ("Property-based testing with PropEr/StreamData"))) |
169 | | - |
170 | | - ((category . "observability") |
171 | | - (items |
172 | | - ("OpenTelemetry integration for execution tracing") |
173 | | - ("Prometheus metrics for fuel consumption patterns") |
174 | | - ("Grafana dashboards for sandbox health")))) |
175 | | - |
176 | | - (use-cases |
177 | | - ("Plugin systems with untrusted user code") |
178 | | - ("Multi-tenant SaaS with isolated computation") |
179 | | - ("Edge computing with resource-constrained execution") |
180 | | - ("Research sandbox for language experimentation") |
181 | | - ("Smart contract execution environments"))) |
182 | | - |
183 | | - ;; ========================================================================= |
184 | | - ;; CRITICAL NEXT ACTIONS |
185 | | - ;; ========================================================================= |
186 | | - (next-actions |
187 | | - ((priority . 1) |
188 | | - (action . "Implement export validation in lib/munition.ex") |
189 | | - (rationale . "Security: verify WASM modules before execution") |
190 | | - (effort . "small")) |
191 | | - |
192 | | - ((priority . 2) |
193 | | - (action . "Implement import validation in lib/munition.ex") |
194 | | - (rationale . "Security: ensure only expected imports are present") |
195 | | - (effort . "small")) |
196 | | - |
197 | | - ((priority . 3) |
198 | | - (action . "Complete log host function memory reading") |
199 | | - (rationale . "Feature completeness: capture actual log messages") |
200 | | - (effort . "small")) |
201 | | - |
202 | | - ((priority . 4) |
203 | | - (action . "Design and implement instance pooling") |
204 | | - (rationale . "Performance: reduce startup latency for repeated executions") |
205 | | - (effort . "large")) |
206 | | - |
207 | | - ((priority . 5) |
208 | | - (action . "Add memory limit configuration") |
209 | | - (rationale . "Security: bound resource usage before instantiation") |
210 | | - (effort . "medium"))) |
211 | | - |
212 | | - ;; ========================================================================= |
213 | | - ;; PROJECT CATALOG |
214 | | - ;; ========================================================================= |
215 | | - (project-catalog |
216 | | - ((name . "munition-core") |
217 | | - (status . "in-progress") |
218 | | - (completion . 80) |
219 | | - (phase . "stabilization") |
220 | | - (next-action . "Complete stubbed validation functions")) |
221 | | - |
222 | | - ((name . "munition-pooling") |
223 | | - (status . "not-started") |
224 | | - (completion . 0) |
225 | | - (phase . "design") |
226 | | - (blocker . "Awaiting v0.2.0 cycle start") |
227 | | - (next-action . "Design pool supervision strategy")) |
228 | | - |
229 | | - ((name . "munition-host-functions") |
230 | | - (status . "in-progress") |
231 | | - (completion . 40) |
232 | | - (phase . "implementation") |
233 | | - (next-action . "Implement filesystem read capability")) |
234 | | - |
235 | | - ((name . "munition-forensics") |
236 | | - (status . "in-progress") |
237 | | - (completion . 70) |
238 | | - (phase . "enhancement") |
239 | | - (next-action . "Add stack trace extraction"))) |
240 | | - |
241 | | - ;; ========================================================================= |
242 | | - ;; SESSION HISTORY |
243 | | - ;; ========================================================================= |
244 | | - (history |
245 | | - ((date . "2025-12-08") |
246 | | - (event . "STATE.scm created") |
247 | | - (snapshot |
248 | | - (overall-completion . 35) |
249 | | - (version . "0.1.0-alpha") |
250 | | - (status . "core-complete")))))) |
251 | | - |
252 | | -;; End of STATE.scm |
| 21 | +(define state-summary |
| 22 | + '((project . "chimichanga") (completion . 25) (blockers . 0) (updated . "2025-12-15"))) |
0 commit comments