Skip to content

chore: remove completed OSS launch phase from roadmap#10

Closed
abbudjoe wants to merge 1 commit intomainfrom
chore/update-roadmap
Closed

chore: remove completed OSS launch phase from roadmap#10
abbudjoe wants to merge 1 commit intomainfrom
chore/update-roadmap

Conversation

@abbudjoe
Copy link
Copy Markdown
Contributor

Phase complete. All items shipped.

@abbudjoe abbudjoe closed this Mar 26, 2026
@abbudjoe abbudjoe deleted the chore/update-roadmap branch March 26, 2026 02:43
abbudjoe added a commit that referenced this pull request Apr 8, 2026
**Critical Fixes (Issues #1-#4):**
- Replace .expect() with .unwrap_or_default() in current_timestamp()
- Replace all .unwrap() on mutex locks with .unwrap_or_else(|e| e.into_inner())
- Add comprehensive doc comments to MAX_FAILURES and COOLDOWN_SECONDS
- Use saturating_add() to prevent integer overflow in record_failure()

**Quality Improvements (Issues #5-#10):**
- Add doc comment explaining manual Default impl
- Extract is_approved() logic into testable function with 2 new tests
- Make error messages strategy-specific (LocalFirst/CloudFirst strategy failed)
- Add comprehensive examples to resolve_strategy() documentation
- Document why auto-recovery cooldown is not unit tested
- Verify crossterm dependency has no conflicts

**Test Count:**
- Total: 60 tests (50 nv-llm + 10 nv-cli)
- Added 2 tests for approval logic (is_approved_yes_variants, is_approved_no_variants)

All quality checks pass:
- cargo fmt --all --check ✓
- cargo clippy --workspace --all-targets -- -D warnings ✓
- cargo test --workspace ✓
- No unwrap() in library code ✓
abbudjoe added a commit that referenced this pull request Apr 8, 2026
Critical fixes:
- Replace unwrap() with expect() in create_user_input() helper (issue #1)
- Add comprehensive documentation that WASM tests verify infrastructure only, not execution (issue #2)
- Add TODO comments referencing PR #179 for real WASM runtime (issue #2)
- Add timeout and multi_thread flavor to concurrent audit test to prevent deadlocks (issue #3)
- Fix tautological assertions in edge case tests - now verify specific behavior (issue #4)

High priority fixes:
- Extend MockLlmProvider with 4 error types: ServiceUnavailable, RateLimitExceeded, Timeout, MalformedResponse (issue #5)
- Add comprehensive doc comments to MockLlmProvider explaining matching strategy and thread-safety (issue #12)
- Strengthen prompt injection test to require IntentCategory::Conversation (issue #6)
- Add test_audit_hash_chain_tampering_detection test (issue #7)
- Add test_skill_network_capability_denied test for runtime capability enforcement (issue #8)

Medium priority fixes:
- Extract all magic number encryption keys to named constants (issue #9)
- Add comment in Cargo.toml explaining intentional E2E test dependencies (issue #10)
- Make retry backoff timing test more robust with 80ms threshold instead of 100ms (issue #11)

Low priority improvements:
- Rename test_policy_allow_with_confirmation → test_policy_requires_confirmation_for_destructive_actions (issue #13)
- Add task IDs to concurrent audit test events for better debugging (issue #14)
- Remove unused test_storage_round_trip helper (was addressing issue #15 but simplified instead)

All tests pass (28/28), clippy clean with -D warnings, formatted with rustfmt.
abbudjoe added a commit that referenced this pull request Apr 8, 2026
- Add TDD workflow requirement to testing strategy (#1)
- Expand error mapping: 429, 402, model deprecation (#2)
- Add Keystore key rotation/invalidation handling (#3)
- Document health check endpoint limitation re model.request scope (#4)
- Specify atomic migration with rollback steps (#5)
- Scope out biometric gate for this phase (#6)
- Clarify Kotlin-only architecture boundary for vault (#7)
- Add migration idempotency test case (#8)
- Propose offline health check behavior (#9)
- Note doc path verification (#10)
- Specify GCM tag length (128-bit) (#11)
abbudjoe added a commit that referenced this pull request Apr 8, 2026
Address all 13 items from the review comment:

Blocking:
- #1: Replace serde_json::Value metadata with typed ThoughtMetadata enum
- #2: Edge classification uses explicit caller declaration (add_edge vs
  add_back_edge) with index-order sanity checks, not index arithmetic
- #3: Define Generate partial failure as all-or-nothing per parent

Non-blocking:
- #4: ThoughtIdAllocator uses plain u64, not AtomicU64
- #5: Remove created_at ghost field (Instant not serializable)
- #6: Replace raw usize with GraphNodeId wrapper throughout
- #7: Fix line count estimate to ~1,900 (was ~1,100)
- #8: Replace (usize, usize, bool) tuple with named EdgeSpec struct
- #9: GoT + sub_goals combination returns error instead of silent ignore

Nice-to-have:
- #10: LLM score parsing uses regex extraction with fallback
- #11: Each operation emits tracing::info_span! with node/op/cycle
- #12: Single budget mechanism (session-level), removed max_total_tokens
- #13: Document refine() sets last_node to final internal node

Step 6 gains 4 new test cases (12-15) covering partial failure,
parameter conflict rejection, refine wiring, and score parsing.
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.

1 participant