-
Notifications
You must be signed in to change notification settings - Fork 90
Release: 4.1.0 #17
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
Merged
Release: 4.1.0 #17
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
… it is just a toggle for temporarry thinking budget bumping
…CP tools This release enables CGO-free cross-compilation, adds type-safe database operations, and exposes computed assurance data via new MCP tools. ### SQLite Driver Migration - Replace mattn/go-sqlite3 (CGO) with modernc.org/sqlite (pure Go) - CGO_ENABLED=0 builds now work for all platforms - Cross-compilation verified: linux/amd64, linux/arm64, darwin/*, windows/amd64 ### sqlc Integration - Add schema.sql and query.sql for sqlc code generation - Generate type-safe models and query functions - Create db/store.go wrapper for clean API with schema bootstrap - Add comprehensive test suite (db/store_test.go) ### New MCP Tools for Trust Calculus (B.3) - quint_audit_tree: Visualize assurance tree with R scores and CL penalties - quint_calculate_r: Compute R_eff with detailed breakdown (WLNK, decay) - quint_check_decay: Identify holons with expired evidence ### Updated FPF Commands - /q4-audit: Now calls quint_calculate_r and quint_audit_tree - /q5-decide: Uses quint_calculate_r for final R_eff comparison - /q-status: Proactively checks for expired evidence - /q-decay: Uses quint_check_decay for epistemic debt detection
Phase 1 (S4): Parent ID chain for L0→L1→L2 tracking - Added parent_id FK to holons table - New queries: GetHolonsByParent, GetHolonLineage Phase 2 (S2): Derived phase from DB state - DerivePhase() computes phase from holons.layer - Prevents state.json manipulation attacks Phase 3 (E5): Audit logging - New audit_log table tracking MCP tool invocations - Instrumented propose/verify/decide/move tools Phase 4 (S5): Self-healing signed projections - content_hash in YAML frontmatter for tampering detection - Auto-regenerate from DB when tampering detected Phase 5 (E3+E4): Tool preconditions - Validate inputs before tool execution - Block invalid calls with actionable suggestions Also: - Proper migration system with schema_version tracking - DRR holon creation in FinalizeDecision
All command prompts (q0-q5) now include enforcement contracts: - YAML frontmatter with pre/post/invariant/required_tools - RFC 2119 bindings (MUST, MUST NOT, SHALL) - "Invalid Behaviors" section for explicit protocol violations - "Checkpoint" verification checklist before phase transitions - Success/failure path examples for few-shot learning - "State machine executor" persona to reduce AI improvisation Defense in depth: soft gate (prompts) + hard gate (preconditions).
Changed from DRR-{unix_timestamp}-slug.md to DRR-{YYYY-MM-DD}-slug.md
Also changed frontmatter field from 'timestamp' to 'created' with RFC3339 format
- New .github/workflows/ci.yml triggers on PRs to main and dev - Runs tests with race detector and coverage - Runs golangci-lint for code quality - Verifies build and dist/ sync - Added .golangci.yml config - Fixed lint issues: errcheck, staticcheck, unused code, formatting
Pre-commit hooks (two options): - .pre-commit-config.yaml for pre-commit tool users - .githooks/pre-commit for simple git-native hooks Checks performed: - Go: gofmt, goimports, build, test, golangci-lint - General: trailing whitespace, EOF, yaml, large files, merge conflicts, private keys - Project: dist/ sync with src/commands/ Setup: ./scripts/setup-hooks.sh (or --precommit for pre-commit tool)
- quint-code version: shows version, commit, build date - quint-code --version: shows version (short form) - Version injected via ldflags at build time - Updated release workflow to inject version info
Evidence was stored with NULL valid_until, making /q-decay always report no expired evidence. ManageEvidence now sets a default 90-day validity period when validUntil is empty.
- TestPropose_WithDecisionContext: verifies MemberOf relation creation - TestPropose_WithDependsOn: verifies ComponentOf relation creation - TestPropose_CycleDetection: verifies cycle prevention - TestPropose_InvalidDependency: verifies graceful handling of missing deps - TestPropose_KindDeterminesRelation: verifies system→componentOf, episteme→constituentOf - TestWLNK_MemberOf_NoPropagation: verifies MemberOf doesn't affect R_eff
- Add depends_on, decision_context, and dependency_cl parameters to quint_propose - Create ComponentOf (system) or ConstituentOf (episteme) relations based on kind - Create MemberOf relation for grouping alternatives under a decision context - Add SQL queries: CreateRelation, GetDependencies, GetDependents, GetCollectionMembers - Add indexes for WLNK traversal (idx_relations_target, idx_relations_source) - Document structural relations (B.1.1) in CLAUDE.md
Signed-off-by: Boris Bliznioukov <blib@mail.com>
Fix: Standardize Go module import paths
- DRR Linking: quint_decide now accepts rejected_ids parameter - Creates 'selects' relation: DRR → winner - Creates 'rejects' relations: DRR → rejected alternatives - Context Markdown: quint_record_context normalizes formatting - Vocabulary as definition list - Invariants as numbered list with line breaks - Audit Tree: Now displays memberOf groupings - Shows decision alternatives under [members] section - Exposes GetCollectionMembers in store.go - Tool Descriptions: Improved quint_propose parameter docs - depends_on: Explains WLNK impact - decision_context: Explains grouping purpose - q1-hypothesize.md: Added Linking Checklist
- Remove standalone /q-audit utility command - Enhance /q-query to show R_eff and dependency trees - /q4-audit (FPF phase) unchanged
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.
quint-code 4.1.0: Better Linking, Smarter Queries
This release focuses on making the knowledge graph actually useful.
DRR Linking
When you finalize a decision with quint_decide, it now tracks what you picked and what you rejected. Pass rejected_ids alongside winner_id, and the system creates proper graph relations. Six months later, you can ask "what alternatives did we consider for this?" and get a real answer.
Audit Tree Shows the Full Picture
quint_audit_tree now displays memberOf relations — the competing alternatives grouped under a decision context. Previously these links existed in the database but were invisible. Now you see the complete structure.
Context Formatting
quint_record_context stopped producing wall-of-text markdown. Vocabulary entries render as proper definition lists, invariants as numbered items. Small thing, but readable docs matter.
Smarter /q-query
Merged /q-audit into /q-query. One command now searches the knowledge base AND shows R_eff scores with dependency trees. Fewer commands, same functionality.
Better Tool Descriptions
Rewrote quint_propose parameter descriptions to explain when to use depends_on vs decision_context. Added a linking checklist to the hypothesis phase. The agent should now actually create proper relationships instead of isolated nodes.