-
Notifications
You must be signed in to change notification settings - Fork 0
Rocklobstah #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Hendler
wants to merge
11
commits into
main
Choose a base branch
from
rocklobstah
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Rocklobstah #33
Conversation
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
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
- 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)
┌─────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────┐
│ 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)
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
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.