Skip to content

Commit f64b072

Browse files
fix: SCM files, security doc, and build issues (#8)
- Regenerate Cargo.lock (was corrupted with GitHub scanning output) - Update META.scm: Change from template-repo to ephapax, add ADRs for Coq verification and WASM target, update development practices - Update ECOSYSTEM.scm: Change from template-repo to ephapax, add detailed project positioning and related projects - Fill SECURITY.md template placeholders with Ephapax-specific values, add qualifying vulnerabilities relevant to linear type systems - Add #[allow(dead_code)] to Codegen struct fields reserved for future interpreter use, eliminating compiler warnings - Update STATE.scm with comprehensive roadmap, milestones, and session history documenting resolved issues All tests pass, build is clean with no warnings. Co-authored-by: Claude <noreply@anthropic.com>
1 parent a287684 commit f64b072

6 files changed

Lines changed: 173 additions & 104 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ECOSYSTEM.scm

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
;; SPDX-License-Identifier: AGPL-3.0-or-later
22
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3-
;; ECOSYSTEM.scm — template-repo
3+
;; ECOSYSTEM.scm — Ephapax
44

55
(ecosystem
66
(version "1.0.0")
7-
(name "template-repo")
8-
(type "project")
9-
(purpose "Project in the hyperpolymath ecosystem")
7+
(name "ephapax")
8+
(type "programming-language")
9+
(purpose "Linear type system for safe memory management targeting WebAssembly")
1010

1111
(position-in-ecosystem
12-
"Part of hyperpolymath ecosystem. Follows RSR guidelines.")
12+
"Core research language in the hyperpolymath ecosystem demonstrating linear types and region-based memory management. Follows RSR Gold guidelines.")
1313

1414
(related-projects
1515
(project (name "rhodium-standard-repositories")
1616
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
17-
(relationship "standard")))
17+
(relationship "standard"))
18+
(project (name "linear-types-research")
19+
(relationship "research-foundation"))
20+
(project (name "wasm-ecosystem")
21+
(relationship "target-platform")))
1822

19-
(what-this-is "Project in the hyperpolymath ecosystem")
20-
(what-this-is-not "- NOT exempt from RSR compliance"))
23+
(what-this-is
24+
"A research programming language exploring:
25+
- Linear types for memory safety without garbage collection
26+
- Region-based memory management for deterministic deallocation
27+
- WebAssembly compilation for safe, portable execution
28+
- Formal verification of type system soundness via Coq proofs")
29+
30+
(what-this-is-not
31+
"- NOT a general-purpose production language (yet)
32+
- NOT exempt from RSR compliance
33+
- NOT a garbage-collected language"))

META.scm

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,49 @@
11
;; SPDX-License-Identifier: AGPL-3.0-or-later
22
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3-
;;; META.scm — template-repo
3+
;;; META.scm — Ephapax
44

5-
(define-module (template-repo meta)
5+
(define-module (ephapax meta)
66
#:export (architecture-decisions development-practices design-rationale))
77

88
(define architecture-decisions
99
'((adr-001
1010
(title . "RSR Compliance")
1111
(status . "accepted")
1212
(date . "2025-12-15")
13-
(context . "Project in the hyperpolymath ecosystem")
13+
(context . "Linear type system for safe memory management targeting WebAssembly")
1414
(decision . "Follow Rhodium Standard Repository guidelines")
15-
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))))
15+
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))
16+
(adr-002
17+
(title . "Formal Verification with Coq")
18+
(status . "accepted")
19+
(date . "2025-12-17")
20+
(context . "Type system correctness is critical for memory safety guarantees")
21+
(decision . "Mechanize type system proofs in Coq")
22+
(consequences . ("Type safety proven" "Progress and preservation theorems" "Coq 8.18+ dependency")))
23+
(adr-003
24+
(title . "WebAssembly Target")
25+
(status . "accepted")
26+
(date . "2025-12-17")
27+
(context . "Need portable, sandboxed execution environment")
28+
(decision . "Target WebAssembly as primary backend")
29+
(consequences . ("Browser compatibility" "WASI support" "Region-based memory via linear memory")))))
1630

1731
(define development-practices
18-
'((code-style (languages . ("unknown")) (formatter . "auto-detect") (linter . "auto-detect"))
19-
(security (sast . "CodeQL") (credentials . "env vars only"))
20-
(testing (coverage-minimum . 70))
32+
'((code-style
33+
(languages . ("rust" "coq" "scheme"))
34+
(formatter . "rustfmt")
35+
(linter . "clippy"))
36+
(security
37+
(sast . "CodeQL")
38+
(credentials . "env vars only")
39+
(dependency-scanning . "dependabot"))
40+
(testing
41+
(coverage-minimum . 70)
42+
(formal-proofs . "coq"))
2143
(versioning (scheme . "SemVer 2.0.0"))))
2244

2345
(define design-rationale
24-
'((why-rsr "RSR ensures consistency, security, and maintainability.")))
46+
'((why-rsr "RSR ensures consistency, security, and maintainability.")
47+
(why-linear-types "Linear types guarantee each value is used exactly once, enabling deterministic memory management without garbage collection.")
48+
(why-regions "Regions provide scoped memory management, enabling safe bulk deallocation without runtime overhead.")
49+
(why-wasm "WebAssembly provides a safe, portable, sandboxed execution environment with predictable performance.")))

SECURITY.md

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,5 @@
11
# Security Policy
22

3-
<!--
4-
============================================================================
5-
TEMPLATE INSTRUCTIONS (delete this block before publishing)
6-
============================================================================
7-
Replace all {{PLACEHOLDER}} values with your information:
8-
{{PROJECT_NAME}} - Your project name
9-
{{OWNER}} - GitHub username or org (e.g., hyperpolymath)
10-
{{REPO}} - Repository name
11-
{{SECURITY_EMAIL}} - Security contact email
12-
{{PGP_FINGERPRINT}} - Your PGP key fingerprint (40 chars, no spaces)
13-
{{PGP_KEY_URL}} - URL to your public PGP key
14-
{{WEBSITE}} - Your website/domain
15-
{{CURRENT_YEAR}} - Current year for copyright
16-
17-
Optional: Remove sections that don't apply (e.g., PGP if you don't use it)
18-
============================================================================
19-
-->
20-
213
We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions.
224

235
## Table of Contents
@@ -40,7 +22,7 @@ We take security seriously. We appreciate your efforts to responsibly disclose v
4022

4123
The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature:
4224

43-
1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new)
25+
1. Navigate to [Report a Vulnerability](https://github.com/hyperpolymath/ephapax/security/advisories/new)
4426
2. Click **"Report a vulnerability"**
4527
3. Complete the form with as much detail as possible
4628
4. Submit — we'll receive a private notification
@@ -52,28 +34,14 @@ This method ensures:
5234
- Coordinated disclosure tooling
5335
- Automatic credit when the advisory is published
5436

55-
### Alternative: Encrypted Email
56-
57-
If you cannot use GitHub Security Advisories, you may email us directly:
58-
59-
| | |
60-
|---|---|
61-
| **Email** | {{SECURITY_EMAIL}} |
62-
| **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) |
63-
| **Fingerprint** | `{{PGP_FINGERPRINT}}` |
37+
### Alternative: GitHub Issues (Non-Sensitive)
6438

65-
```bash
66-
# Import our PGP key
67-
curl -sSL {{PGP_KEY_URL}} | gpg --import
39+
For non-sensitive security concerns (e.g., dependency updates, security best practices):
6840

69-
# Verify fingerprint
70-
gpg --fingerprint {{SECURITY_EMAIL}}
71-
72-
# Encrypt your report
73-
gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt
74-
```
41+
- Open an issue at [GitHub Issues](https://github.com/hyperpolymath/ephapax/issues)
42+
- Use the "security" label
7543

76-
> **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media.
44+
> **⚠️ Important:** Do not report sensitive security vulnerabilities through public GitHub issues, pull requests, discussions, or social media.
7745
7846
---
7947

@@ -203,7 +171,7 @@ If we cannot reach agreement on disclosure timing, we default to 90 days from yo
203171

204172
The following are within scope for security research:
205173

206-
- This repository (`{{OWNER}}/{{REPO}}`) and all its code
174+
- This repository (`hyperpolymath/ephapax`) and all its code
207175
- Official releases and packages published from this repository
208176
- Documentation that could lead to security issues
209177
- Build and deployment configurations in this repository
@@ -226,31 +194,24 @@ The following are **not** in scope:
226194
We're particularly interested in:
227195

228196
- Remote code execution
229-
- SQL injection, command injection, code injection
230-
- Authentication/authorisation bypass
231-
- Cross-site scripting (XSS) and cross-site request forgery (CSRF)
232-
- Server-side request forgery (SSRF)
233-
- Path traversal / local file inclusion
234-
- Information disclosure (credentials, PII, secrets)
235-
- Cryptographic weaknesses
236-
- Deserialisation vulnerabilities
197+
- Command injection, code injection
237198
- Memory safety issues (buffer overflows, use-after-free, etc.)
199+
- Type system soundness bugs (violations of linear type guarantees)
200+
- WASM sandbox escapes
201+
- Cryptographic weaknesses
202+
- Information disclosure (credentials, PII, secrets)
238203
- Supply chain vulnerabilities (dependency confusion, etc.)
239-
- Significant logic flaws
204+
- Significant logic flaws in the type checker
240205

241206
### Non-Qualifying Issues
242207

243208
The following generally do not qualify as security vulnerabilities:
244209

245210
- Missing security headers on non-sensitive pages
246-
- Clickjacking on pages without sensitive actions
247-
- Self-XSS (requires victim to paste code)
248-
- Missing rate limiting (unless it enables a specific attack)
249-
- Username/email enumeration (unless high-risk context)
250-
- Missing cookie flags on non-sensitive cookies
251211
- Software version disclosure
252212
- Verbose error messages (unless exposing secrets)
253213
- Best practice deviations without demonstrable impact
214+
- Performance issues (unless enabling DoS)
254215

255216
---
256217

@@ -322,7 +283,7 @@ Recognition includes:
322283
To stay informed about security updates:
323284

324285
- **Watch this repository**: Click "Watch" → "Custom" → Select "Security alerts"
325-
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
286+
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/hyperpolymath/ephapax/security/advisories)
326287
- **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md)
327288

328289
### Update Policy
@@ -335,8 +296,6 @@ To stay informed about security updates:
335296

336297
### Supported Versions
337298

338-
<!-- Adjust this table to match your actual version support policy -->
339-
340299
| Version | Supported | Notes |
341300
|---------|-----------|-------|
342301
| `main` branch | ✅ Yes | Latest development |
@@ -348,7 +307,7 @@ To stay informed about security updates:
348307

349308
## Security Best Practices
350309

351-
When using {{PROJECT_NAME}}, we recommend:
310+
When using Ephapax, we recommend:
352311

353312
### General
354313

@@ -370,8 +329,7 @@ When using {{PROJECT_NAME}}, we recommend:
370329

371330
## Additional Resources
372331

373-
- [Our PGP Public Key]({{PGP_KEY_URL}})
374-
- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
332+
- [Security Advisories](https://github.com/hyperpolymath/ephapax/security/advisories)
375333
- [Changelog](CHANGELOG.md)
376334
- [Contributing Guidelines](CONTRIBUTING.md)
377335
- [CVE Database](https://cve.mitre.org/)
@@ -383,9 +341,9 @@ When using {{PROJECT_NAME}}, we recommend:
383341

384342
| Purpose | Contact |
385343
|---------|---------|
386-
| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} |
387-
| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) |
388-
| **Other enquiries** | See [README](README.md) for contact information |
344+
| **Security issues** | [Report via GitHub](https://github.com/hyperpolymath/ephapax/security/advisories/new) |
345+
| **General questions** | [GitHub Discussions](https://github.com/hyperpolymath/ephapax/discussions) |
346+
| **Other enquiries** | See [README](README.adoc) for contact information |
389347

390348
---
391349

@@ -399,8 +357,8 @@ This security policy may be updated from time to time. Significant changes will
399357

400358
---
401359

402-
*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* 🛡️
360+
*Thank you for helping keep Ephapax and its users safe.*
403361

404362
---
405363

406-
<sub>Last updated: {{CURRENT_YEAR}} · Policy version: 1.0.0</sub>
364+
<sub>Last updated: 2025 · Policy version: 1.0.0</sub>

0 commit comments

Comments
 (0)