Skip to content

Conversation

@Hendler
Copy link
Contributor

@Hendler Hendler commented Feb 1, 2026

No description provided.

  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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants