chore(deps): Bump axum from 0.7.9 to 0.8.8#134
Conversation
Phase 3 of AutoML with Synthetic Data specification: ShellSample struct: - Command with context (history, cwd, prefix, completion) - Extraction helpers (command_name, arguments) - Completion validity checking ShellGrammar: - Command/subcommand validation (git, cargo, npm, docker, Unix) - Common options recognition - Extensible via add_command/add_subcommands ShellSyntheticGenerator implementing SyntheticGenerator: - Template substitution (argument variants) - Argument permutation (reorder/add options) - Context variation (cwd, history) - Quality scoring: 0.4*semantic + 0.4*grammar + 0.2*coherence - Diversity scoring via unique command patterns 42 tests with Extreme TDD methodology. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…efs #74) Implement three advanced synthetic data generation components: - MixUp generator: Zhang et al. 2018 embedding interpolation with Beta distribution sampling and configurable alpha parameter (24 tests) - WeakSupervision generator: Snorkel-style programmatic labeling with LabelingFunction trait, multiple aggregation strategies (MajorityVote, WeightedVote, Unanimous, Any), and built-in LFs (29 tests) - SyntheticCache: LRU eviction memoization for avoiding redundant generation during AutoML hyperparameter search (18 tests) Total: 71 new tests, 2030 tests passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive model bundling and memory paging support: ## Model Bundling (.apbundle format) - Binary format with magic bytes, version, and manifest - BundleReader/BundleWriter for efficient file I/O - ModelBundle API for creating, saving, and loading bundles - Builder pattern for flexible bundle construction - Support for multiple models with metadata ## Memory-Mapped File Support - MappedRegion for efficient memory access - MemoryMappedFile with region caching - PageTable for LRU/LFU tracking ## LRU Paging - PagedBundle for memory-constrained environments - Configurable max_memory and eviction strategies - LRU (Least Recently Used) and LFU (Least Frequently Used) eviction - Automatic page eviction when memory limit exceeded ## Pre-fetching - Access pattern tracking for predictive loading - Configurable prefetch_count - Hint API for explicit prefetch requests ## Also included: - Synthetic data integration tests (15 tests) - Synthetic data generation example - Updated spec status to "Implemented (Phases 1-4)" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…74) Update spec status to reflect complete implementation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add PagedMarkovModel using aprender's bundle module for memory-efficient storage - Implement LRU-based on-demand segment loading - Add --memory-limit CLI flag to train, suggest, and stats commands - Add 13 comprehensive tests for paged model functionality - Fix doctest in synthetic/mixup.rs (missing Clone derive) The paged model stores n-gram segments separately and loads them on-demand, enabling handling of shell histories that exceed RAM. Refs #74 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive case study for bundle module - Update shell-completion chapter with paging documentation - Add bundle_trace_demo example for renacer tracing - Update SUMMARY.md with new chapter Refs #74 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive guide for using renacer syscall tracer to profile and optimize memory paging behavior in ML model loading. Content includes: - Renacer usage patterns (-e trace=file, -T, -c, -s flags) - Syscall analysis for detecting evictions and cache misses - Pre-fetch effectiveness measurement - JSON output for programmatic analysis - Optimization patterns (reduce seeks, right-size memory, pre-fetching) - Troubleshooting guide with symptom/fix table Also adds book chapters for bundle_trace_demo and synthetic_data_generation examples to satisfy EXTREME TDD requirements. Allows clippy::large_stack_arrays lint for ML test data arrays. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…77) Implements two new synthetic data components for code analysis: CodeEDA (GH-76): - Code-specific EDA (Easy Data Augmentation) implementing SyntheticGenerator - Variable renaming with synonym dictionary - Comment insertion (Rust/Python/Generic modes) - Statement reordering for independent statements - Dead code removal (comments and whitespace) - Quality scoring via token overlap - 23 unit tests CodeFeatureExtractor (GH-77): - 8-dimensional commit feature extraction for defect prediction - CommitFeatures: defect_category, files_changed, lines_added/deleted, complexity_delta, timestamp, hour_of_day, day_of_week - Keyword-based commit classification (bug/security/perf/refactor) - Batch extraction and normalization support - 22 unit tests References: - Wei & Zou (2019) EDA paper - D'Ambros et al. (2012) defect prediction benchmark 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…76, Refs #77) - Add --use-code-eda flag to Augment command for code-aware augmentation - Add new Analyze command using CodeFeatureExtractor - Shows command categories (bug/security/performance/refactor/general) - Displays top base commands with visual bar charts - Shows sample commands by category - Reports complexity metrics (avg tokens, max tokens, unique bases) - Identifies developer workflow (git, cargo, npm, docker usage) - Add 3 integration tests for new features 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…Refs #74) Benchmarks (modeled after bashrs patterns): - parse_history: History file parsing throughput - train_model: N-gram model training (small/medium/large fixtures) - suggest_latency: Suggestion performance for common prefixes - partial_completion: Partial token completion benchmarks - serialization: JSON and file save/load benchmarks - end_to_end: Complete workflow benchmarks - synthetic_generation: CodeEDA augmentation benchmarks Fixtures (aligned with bashrs): - small_history.txt: ~50 commands (basic developer workflow) - medium_history.txt: ~265 commands (full developer workflow) - large_history.txt: ~3800 commands (production scale) Real-world tests (19 new tests): - REAL_001-003: Small/Medium/Large history training and suggestions - REAL_004: Cross-validation testing - REAL_005: Data augmentation with CodeEDA - REAL_006: Analysis command testing - REAL_007: Export/import roundtrip - REAL_008: Paged model for large histories - REAL_009: Incremental updates - REAL_010: End-to-end user workflow Architecture changes: - Added lib.rs to expose modules for benchmarks - Refactored main.rs to use library imports 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…rks (Refs #74) Sub-10ms Verification Benchmark Suite: Performance Results (vs 10ms target): - Small model (50 cmds): 437ns - 1.5µs (6,500-22,000x faster) - Medium model (500 cmds): 530ns - 10.6µs (940-18,800x faster) - Large model (5000 cmds): 670ns - 15µs (660-14,900x faster) Benchmark Groups: - suggestion_latency: Core latency verification by model size - partial_completion: Mid-word completion (git co → git commit) - training_throughput: Commands/second during training - cold_start: Model load + first suggestion latency - serialization: JSON serialize/deserialize performance - scalability: Latency growth with model size (O(1) verified) - paged_model: Memory-constrained model performance Industry Comparison: - GitHub Copilot: 100-500ms → aprender 10,000-50,000x faster - Fish completion: 5-20ms → aprender 500-2,000x faster - Zsh compinit: 10-50ms → aprender 1,000-5,000x faster Run: cargo bench --package aprender-shell --bench recommendation_latency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
#74) Updated shell-completion.md: - Added "Performance: Sub-10ms Verification" section - Detailed benchmark results table (437ns - 14.6µs latency) - Industry comparison (600-22,000x faster than alternatives) - "Why So Fast?" explanation (O(1) trie, no neural overhead) - Benchmark suite overview New chapter: shell-completion-benchmarks.md - Comprehensive benchmark analysis - trueno-style criterion patterns - Scalability analysis (sub-linear O(log n)) - Training throughput metrics - Cold start verification (<3ms) - Fixture design documentation - Custom benchmark extension guide - CI integration example Key results documented: - Worst case: 14.6 µs (685x under 10ms target) - Best case: 437 ns (22,883x under 10ms target) - Scales sub-linearly with model size 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add dedicated book chapters for the new code-aware synthetic data modules: - CodeEDA: Syntax-aware data augmentation for source code - Variable renaming, comment insertion, statement reorder - Language-specific reserved keyword handling (Rust, Python) - Quality and diversity metrics - CodeFeatureExtractor: 8-dimensional commit feature extraction - Defect category classification (bug, security, perf, refactor) - Complexity estimation, time-based features - Normalization for ML pipelines 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Change alimentar from local path dependency to crates.io v0.1.0 for publishing compatibility. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Change aprender dependency from path to crates.io v0.10.0 - Add README.md for crate documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
## Metaheuristics (Refs #80) - Add src/metaheuristics/ module with Differential Evolution (DE) - SearchSpace enum for continuous/discrete/mixed optimization - ComputeBudget for resource-aware optimization - PerturbativeMetaheuristic trait following Toyota Way principles - Book documentation for DE and metaheuristics fundamentals ## aprender-shell Enhancements (Refs #87, #88, #96) - Fish shell widget support (fish-widget command) - Uninstall command for clean widget removal - ZSH widget v2 with toggle, timeout, ShellCheck fixes - New CLI integration tests ## AutoML Enhancements - Expanded search.rs with advanced hyperparameter optimization - Grid search, random search, and TPE improvements - Fixed clippy warnings (range contains, format strings) ## Documentation - aprender-shell-harden-plan.md spec (16 issues, Toyota Way, 10 refs) - metaheuristics-spec.md with CEC benchmarks - Updated roadmap.yaml ## Quality - 382 tests passing - 92.66% coverage - Clippy clean (-D warnings) - PMAT: A+ (151/134), TDG: A+ (99/100) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
… unsafe) POLICY: We will NEVER use unsafe code. If HE crypto primitives are needed, we will implement them from scratch in safe Rust. Additions: - docs/specifications/homomorphic-encryption-spec.md (10 peer-reviewed citations) - book/src/examples/shell-encryption-tiers.md (4-tier protection guide) - src/format/homomorphic.rs (28 tests: types, traits, API design) - Shell Tier 2 compression: save_compressed() (5 tests) - Shell Tier 2+3 combo: save_compressed_encrypted() 4-Tier Model Protection: - Tier 1: Plain (.apr) - Tier 2: Compressed (zstd, 14x smaller) - Tier 3: At-rest encrypted (AES-256-GCM) - Tier 4: Homomorphic (API ready, crypto deferred) Test counts: - Core aprender: 2,292 tests (with format-homomorphic) - aprender-shell: 127 tests (+5 compression) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add src/ensemble/ module with MoE, SoftmaxGating, MoeConfig - Add ModelType::MixtureOfExperts (0x0040) to format - Add examples/mixture_of_experts.rs runnable example - Add book/src/examples/mixture-of-experts.md documentation - Update model-format.md with MoE section and model type - Fix Makefile coverage (move config before clean for sccache) - Add docs/specifications/more-learning-specs.md (34 sections) - GAN, VAE, Diffusion, Contrastive, GNN, Meta-learning - Transfer learning for transpiler ecosystem - Distillation ingestion from entrenar - Code-specific ML for depyler oracle Refs #101 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
100 test cases covering: - Installation (5) - train command (17) - update command (8) - suggest command (14) - stats command (6) - export/import (10) - validate command (10) - augment command (8) - analyze command (6) - tune command (6) - zsh-widget (4) - Edge cases (6) - Performance benchmarks (5) - Platform compatibility (5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
New features: - Mixture of Experts (MoE) ensemble module - ModelType::MixtureOfExperts (0x0040) - Future ML specs (34 sections) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update aprender dependency from path to crates.io v0.11 - Ready for v0.2.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix trivial cast lint error in mmap.rs:611 that broke CI - Update hero image: 17 → 18 model types (MoE added) - Update hero image version: v0.9 → v0.11 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- hf_hub/mod.rs: Replace unwrap() with expect() (disallowed-methods) - hf_hub/mod.rs: Use char '.' instead of string "." (single_char_pattern) - stopwords.rs: Remove redundant is_empty check (const_is_empty) - format/mod.rs: Fix large file tests using Compression::None and unique values 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Without --all-features, feature-gated examples fail to compile, causing coverage to show 0%. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This flag keeps getting accidentally removed, causing 0% coverage. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Prevents the recurring bug where coverage shows 0% because --all-features gets accidentally removed from the coverage target. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
17 similar comments
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
|
Dependabot can't resolve your Rust dependency files. Because of this, Dependabot cannot update this pull request. |
057bf9e to
b4d0814
Compare
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
… race (ANDON paiml/infra#77) (#1043) * fix(ci): per-PR cargo registry to break intel-runner concurrent-write race (paiml/infra#77) ANDON 2026-04-24 — aprender 11-PR stack (#1031..#1042) all failing `ci / security` and `workspace-test` with: error: couldn't read /home/noah/.cargo/registry/src/<crate>/lib.rs: Permission denied (os error 13) and the rustix-0.38 equivalent (E0432 unresolved import `libc`/`libc_errno` originating in the `syscall` macro, which the rustix build.rs regenerates from src/ files — missing src/ → macro can't find libc crate → cascading errors). FIVE WHYS ───────── 1 `ci / security` fails: `cargo install cargo-audit --locked` hits EACCES reading `fnv-1.0.7/lib.rs`. 2 EACCES: the file is missing OR owned by root (docker container creates extractions as root on the bind-mounted host registry). 3 Concurrent writers: 16 self-hosted `intel-clean-room-*` runners bind-mount the SAME /home/noah/.cargo/registry — cargo extractions, the ci-reaper TTL sweep, and cross-container chown cycles all touch identical paths. 4 Shared by design: ci.yml:49 was authored for throughput — re-downloading crates per job is ~200MB, so the host registry was shared across all runners. Race class not modeled. 5 Precedent already exists: target/ hit the identical race under concurrent PRs (task #134) and was fixed by per-PR isolation on /mnt/nvme-raid0/targets/aprender-ci/<pr#>. The registry simply never got the same treatment. ROOT CAUSE ────────── Shared mutable bind mount + concurrent multi-runner write access ≈ guaranteed race. The existing band-aid (PR #1025 "self-heal cargo registry cache", cargo-ok + Cargo.toml marker check) only runs inside `ci / security` and itself races with concurrent jobs that have already passed the cache check. FIX (this PR) ───────────── Mirror the target-dir pattern from ci.yml:55 for the cargo registry. Each PR (or branch) gets its own registry under /mnt/nvme-raid0/cargo-ci/registry/<pr#>. Docker auto-creates the leaf dir on first mount; the ci-reaper TTL sweep (ci-reaper.sh:308) needs a companion infra update (paiml/infra#77) to include the new /mnt path. - Removes: /home/noah/.cargo/registry:/usr/local/cargo/registry - Adds: /mnt/nvme-raid0/cargo-ci/registry/${pr#|ref_name}:/usr/local/cargo/registry Cost: ~200MB per PR on first run (cargo re-downloads crates). Same cost profile as the target/ isolation fix, which the fleet already absorbed. Once cargo-ci/registry/<pr#> warms on run 1, run 2+ hit the cache. FOLLOW-UP ───────── paiml/infra#77 tracks: - forjar recipe to pre-create /mnt/nvme-raid0/cargo-ci/ owner=noah:noah - reaper extension: GC /mnt/nvme-raid0/cargo-ci/registry/<pr#>/src with same TTL - once infra lands, drop the ANDON comment above 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * ci: trigger fresh run to pick up paiml/.github#32 security-job CARGO_HOME fix --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
The disk-guard added in #1001 walked only /home/noah/data/actions-runner*/_work/*/target/ — runner-workspace target dirs totalling ~75G across 8 runners. The actual runner-disk- fill source that took intel offline on 2026-04-23 was /mnt/nvme-raid0/targets/aprender-ci/*: per-PR bind-mount target dirs from ci.yml's task-#134 isolation, holding 1.9T including a 359G orphan `debug/` dir from pre-isolation era. Disk-guard never touched them. Adds new BIND_MOUNT_ROOTS (default `/mnt/nvme-raid0/targets/aprender-ci`) and a prune_bind_mount_target_roots() helper: - Always prunes `debug/` subdir (orphan, no current workflow bind-mounts it). - Prunes PR# subdirs stale past a minute threshold (nightly: STALE_DAYS×24×60 min; pre-job: 60-min floor so fresh in-flight dirs survive full-disk recovery). - Preserves `main` (push-to-main CI reuses it). Space-separated BIND_MOUNT_ROOTS env var lets the same script cover sibling fleets (sovereign-ci-paiml-mcp-agent-toolkit etc.) without code changes. Deployed to intel 2026-04-23T12:58Z; nightly dry-run confirmed no unexpected prune candidates under the new path. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Bumps axum from 0.7.9 to 0.8.8.
Release notes
Sourced from axum's releases.
... (truncated)
Commits
d07863fRelease axum v0.8.8 and axum-extra v0.12.3287c674axum-extra: Make typed-routing feature enable routing feature (#3514)f5804aaSecondElementIs: Correct a small inconsistency (#3559)f51f3baaxum-extra: Add trailing newline to pretty JSON response (#3526)816407aFix integer underflow intry_range_responsefor empty files (#3566)78656ebdocs: Clarifyroute_layerdoes not apply middleware to the fallback handler...4404f27Release axum v0.8.7 and axum-extra v0.12.28f1545aFix typo in extractors guide (#3554)4fc3faaRelax implicit Send / Sync bounds (#3555)a05920cMake it easier to visually scan for default features (#3550)You can trigger a rebase of this PR by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)