Merged
Conversation
85dad6f to
a5b3d1f
Compare
dd22333 to
899fec4
Compare
Hendler
added a commit
that referenced
this pull request
Feb 2, 2026
Parallel Agent Results Summary ✅ ERR-013: Crypto Operation Errors (rust-systems-engineer) Files modified: ringwrapper.rs, pq.rs, pq2025.rs, kem.rs, aes_encrypt.rs - Added algorithm identification (Ed25519, Dilithium5, ML-DSA-87, ML-KEM-768) - Added expected vs actual values for length validation errors - Added operation context (seal vs open, encryption vs decryption) ✅ ERR-014: Schema Validation Errors (rust-systems-engineer) Files modified: schema/mod.rs, schema/utils.rs, agent/document.rs, lib.rs - Added document ID, type, and schema URL to validation errors - Enhanced "Schema not found" to list available embedded schemas - Added actionable guidance in error messages ✅ ERR-015: Agent Loading Errors (rust-systems-engineer) Files modified: agent/loaders.rs, agent/mod.rs, agent/boilerplate.rs - Added agent ID to all loading error messages - Added file paths and configuration context - Added actionable guidance (e.g., "set JACS_PRIVATE_KEY_PASSWORD") 📋 PM Sprint Prioritization (hai-product-manager) Recommended Next 10 Tasks: 1. #23 ERR-011: Convert Err(format!(...)) to JacsError (42 occurrences) 2. #27 ARCH-004: Unify error types across crate (enables #23) 3. #79 TEST-005: Add negative tests for security functions 4. #34 PROD-001: Implement proper logging configuration 5. #100 DOC-002: Add security notice to README 6. #99 DOC-001: Create SECURITY_TODO.md 7. #24 ARCH-001: Eliminate global singleton in simple.rs 8. #28 ARCH-005: Invert config/env var relationship (12-Factor) 9. #25 ARCH-002: Eliminate global state in jacspy binding 10. #26 ARCH-003: Eliminate global state in jacsnpm binding Parallelization: Tasks #99, #100, #79 can run in parallel. #27 must complete before #23. --- Session Progress: - Completed: SEC-001 to SEC-012, ERR-001 to ERR-015, PQ test fix - All 82 library tests passing
Hendler
added a commit
that referenced
this pull request
Feb 3, 2026
* molt to own repo
* Completed JACS Refactoring
Core Rust API (jacs/src/)
- Created simple.rs with the 6-operation simplified API
- Created error.rs with unified error taxonomy
- Created mime.rs for MIME type detection
- Created paths.rs for OS-specific path handling
- Created trust.rs for trust store management
- Added unit tests and golden fixtures
Python Bindings (jacspy/)
- Created jacs/simple.py wrapper module
- Created jacs/types.py with Python dataclasses
- Created jacs/mcp_simple.py for MCP integration
- Updated __init__.py with proper exports
- Added examples: quickstart.py, sign_file.py, mcp_server.py, p2p_exchange.py
- Created tests/test_simple.py test suite
- Updated README and pyproject.toml
Go Bindings (jacsgo/)
- Created simple.go with simplified API functions
- Created types.go with Go struct definitions
- Created errors.go with error types
- Created simple_test.go unit tests
- Updated examples/basic/main.go to use simplified API
- Updated README
NPM Bindings (jacsnpm/)
- Created simple.ts with TypeScript simplified API
- Updated package.json with exports and types
- Created examples: quickstart.js, sign-file.js
- Updated README
Documentation (docs/)
- Created quickstart.md - 5-minute getting started guide
- Created migration.md - v0.4.x to v0.5.0 migration guide
- Created api/python.md, api/go.md, api/npm.md, api/rust.md - API references
- Created guides/mcp-integration.md, guides/file-signing.md, guides/key-exchange.md
- Rewrote main READMEs for all packages
Key Features of the Simplified API
- 6 core operations: create(), load(), verify_self(), sign_message(), sign_file(), verify()
- Consistent types across all language bindings
- Global agent state for simpler usage
- Automatic MIME detection for file signing
- Trust store management with OS-specific paths
* Core Rust API (jacs/src/)
- Created simple.rs with the 6-operation simplified API
- Created error.rs with unified error taxonomy
- Created mime.rs for MIME type detection
- Created paths.rs for OS-specific path handling
- Created trust.rs for trust store management
- Added unit tests and golden fixtures
Python Bindings (jacspy/)
- Created jacs/simple.py wrapper module
- Created jacs/types.py with Python dataclasses
- Created jacs/mcp_simple.py for MCP integration
- Updated __init__.py with proper exports
- Added examples: quickstart.py, sign_file.py, mcp_server.py, p2p_exchange.py
- Created tests/test_simple.py test suite
- Updated README and pyproject.toml
Go Bindings (jacsgo/)
- Created simple.go with simplified API functions
- Created types.go with Go struct definitions
- Created errors.go with error types
- Created simple_test.go unit tests
- Updated examples/basic/main.go to use simplified API
- Updated README
NPM Bindings (jacsnpm/)
- Created simple.ts with TypeScript simplified API
- Updated package.json with exports and types
- Created examples: quickstart.js, sign-file.js
- Updated README
Documentation (docs/)
- Created quickstart.md - 5-minute getting started guide
- Created migration.md - v0.4.x to v0.5.0 migration guide
- Created api/python.md, api/go.md, api/npm.md, api/rust.md - API references
- Created guides/mcp-integration.md, guides/file-signing.md, guides/key-exchange.md
- Rewrote main READMEs for all packages
Key Features of the Simplified API
- 6 core operations: create(), load(), verify_self(), sign_message(), sign_file(), verify()
- Consistent types across all language bindings
- Global agent state for simpler usage
- Automatic MIME detection for file signing
- Trust store management with OS-specific paths
Summary of Changes
Version Updates (0.4.4)
- jacs/Cargo.toml - updated to 0.4.4
- jacspy/Cargo.toml - updated to 0.4.4
- jacspy/pyproject.toml - updated to 0.4.4
- jacsnpm/package.json - updated to 0.4.4
Documentation
- Removed redundant /docs/ directory - The book at jacs/docs/jacsbook/ already contains quick-start and migration guides
- Updated top-level README.md with:
- Simplified API examples for Python, Node.js, Go, and Rust
- Core API table
- Version 0.4.4
- Corrected email: hello@hai.io
- Updated year: 2024, 2025, 2026
Tests
All jacs library tests passed:
- 46 library tests
- 8 integration tests
- 2 doc tests
The jacspy tests require Python linking and need to be run separately with maturin.
✻ Crunched for 8m 16s
⏺ Background command "Run jacs lib tests only" completed (exit code 0)
⏺ I already retrieved those results earlier - the tests all passed. The work is complete:
- Version 0.4.4 set across all packages (jacs, jacspy, jacsnpm)
- README.md updated with simplified API, correct email (hello@hai.io), and years (2024, 2025, 2026)
- Redundant docs/ removed (book at jacs/docs/jacsbook/ has the content)
- All tests passing (46 lib + 8 integration + 2 doc tests)
* ritical Issues Fixed
┌─────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────┐
│ Issue │ Fix │
├─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
│ Bug in VerificationResult.failure() │ Removed invalid error=error kwarg from constructor call │
├─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
│ sign_message() API inconsistency │ Updated Python to accept Any (dict, list, str) instead of just str │
├─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
│ Hardcoded password in config │ Removed jacs_private_key_password from jacs/tests/scratch/jacs.config.json │
├─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
│ CWD mutation without cleanup │ Added in_fixtures_dir fixture with proper yield/cleanup pattern │
├─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
│ README property inconsistency │ Updated examples to use Node.js-compatible aliases (raw, agent_id) │
└─────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘
Files Changed
1. jacspy/python/jacs/types.py
- Fixed VerificationResult.failure() bug
2. jacspy/python/jacs/simple.py
- Changed sign_message(message: str) → sign_message(data: Any)
3. jacs/tests/scratch/jacs.config.json
- Removed hardcoded jacs_private_key_password
4. jacspy/tests/conftest.py
- Added in_fixtures_dir fixture with proper CWD cleanup
5. jacspy/tests/test_simple.py
- Updated to use in_fixtures_dir fixture
6. jacspy/tests/test_utils.py
- Updated to use in_fixtures_dir fixture
7. jacspy/README.md
- Standardized on Node.js-compatible property names (raw, agent_id)
* simple mcp
* update package lock
* security checkpoint
* All 82 tests pass. Let me provide a summary of the parallel agent work:
Parallel Agent Results Summary
✅ ERR-013: Crypto Operation Errors (rust-systems-engineer)
Files modified: ringwrapper.rs, pq.rs, pq2025.rs, kem.rs, aes_encrypt.rs
- Added algorithm identification (Ed25519, Dilithium5, ML-DSA-87, ML-KEM-768)
- Added expected vs actual values for length validation errors
- Added operation context (seal vs open, encryption vs decryption)
✅ ERR-014: Schema Validation Errors (rust-systems-engineer)
Files modified: schema/mod.rs, schema/utils.rs, agent/document.rs, lib.rs
- Added document ID, type, and schema URL to validation errors
- Enhanced "Schema not found" to list available embedded schemas
- Added actionable guidance in error messages
✅ ERR-015: Agent Loading Errors (rust-systems-engineer)
Files modified: agent/loaders.rs, agent/mod.rs, agent/boilerplate.rs
- Added agent ID to all loading error messages
- Added file paths and configuration context
- Added actionable guidance (e.g., "set JACS_PRIVATE_KEY_PASSWORD")
📋 PM Sprint Prioritization (hai-product-manager)
Recommended Next 10 Tasks:
1. #23 ERR-011: Convert Err(format!(...)) to JacsError (42 occurrences)
2. #27 ARCH-004: Unify error types across crate (enables #23)
3. #79 TEST-005: Add negative tests for security functions
4. #34 PROD-001: Implement proper logging configuration
5. #100 DOC-002: Add security notice to README
6. #99 DOC-001: Create SECURITY_TODO.md
7. #24 ARCH-001: Eliminate global singleton in simple.rs
8. #28 ARCH-005: Invert config/env var relationship (12-Factor)
9. #25 ARCH-002: Eliminate global state in jacspy binding
10. #26 ARCH-003: Eliminate global state in jacsnpm binding
Parallelization: Tasks #99, #100, #79 can run in parallel. #27 must complete before #23.
---
Session Progress:
- Completed: SEC-001 to SEC-012, ERR-001 to ERR-015, PQ test fix
- All 82 library tests passing
* securitay
* more safety
* cleanup
* refactor continue
* continued security cleanup
* changing keys -.... ?
* "ni" - Monty Python
* documentation
* examples
* examples
* bump to 0.5.0
* book update
* book update
* connect to hai
* update keys
* lines of code
* cargo culting
* hai hai
* more integration
* hai
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.