Conversation
… support - Memory extract: fix Rust is_exported and signature attribute skipping; resolve JS/TS arrow functions and export statements; strip Python raw route prefixes; isolate superclass name in class inheritance. - Memory store: configure SQLite busy_timeout to 5s; fix schema_version retention in reset; copy commit/last_indexed metadata on artifact import; fix receiver-scoped callees_of filtering; improve module_stem extension stripping. - Memory cypher: allow legitimate identifiers (delete, select, create) in string literals without triggering read-only keyword rejection; quote-aware find_keyword. - Memory trace: prevent sideways walks in Direction::Both by tracking branch direction during BFS. - Harnesses: add AgentTarget::Omp with rules, skills (.agents/skills), hooks (.agents/hooks.json), and MCP support; update Codex block hook wire format; add typed DetailArg/DirectionArg enums for MCP tools. - Core gate: run secret scanning prior to syntax error early return; populate end_line on duplicate block findings and include arrow_function in clone scope; normalize baseline evidence for FG-DRY rules. - Tests: add regression tests for memory extraction, cypher identifier safety, OMP project initialization, and CLI updates.
Member
|
Hey @badrus123, thanks for putting this together! The bugfixes across the memory subsystem & core scanner look really solid:
That said, I have a few major architectural concerns regarding the OMP harness integration:
Suggested Path Forward:
What do you think? |
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
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.
Summary
Fixes critical bugs and edge cases across the code memory subsystem (AST symbol extraction across Rust, JS/TS, Python; SQLite schema version retention and busy timeout; Cypher read-only keyword handling in literals; call-graph bidirectional tracing), adds native integration for the OMP (Oh My Pi) harness, updates Codex turnaround hook protocols, and addresses core scanner and duplication detection gaps.
Changes
extract.rs):is_exportedon functions and types decorated with attributes (#[inline],#[tokio::main]) or doc comments (/// ...).signature()instead of attribute lines.exportstatements.r,f,b,u) in route decorators (e.g.@app.route(r"/api/items")).models.Model->Model).store.rs,mod.rs):busy_timeoutto SQLite connection inStore::open_atto preventSQLITE_BUSYcrashes during concurrent access.schema_versiononstore.reset()and only drop tables on explicitSCHEMA_VERSIONmismatch.commitandlast_indexedmetadata when importing committed artifacts inimport_artifact.callees_ofto avoid leaking global functions into receiver-qualified method calls.module_stemto strip known file extensions (.js,.ts, etc.) and support dotted paths.cypher.rs):WHERE f.name = "delete".find_keywordto prevent clause splitting on keywords inside literals.trace.rs):branch_directionduring BFS traversal forDirection::Bothto prevent sideways walks into sibling nodes at depth >= 2.init.rs,doctor.rs,hook.rs,mcp.rs,main.rs):AgentTarget::Ompwith CLI support (AgentArg::Omp,HookAgentArg::Omp).AGENTS.md), skills (.agents/skills/forgeguard-engineering), hooks (.agents/hooks.json), and MCP (.agents/mcp_config.json).asktool for clarifying questions.omphealth validation toforgeguard doctor.continue: trueto support Codex's auto-turnaround protocol.DetailArgandDirectionArgwithJsonSchemafor MCP tools.scanner.rs,duplication.rs,baseline.rs):end_lineon duplicate block findings (FG-DRY-001,FG-DRY-002,FG-DRY-003) and includearrow_functionin clone scope.FG-DRY-*by ignoring line shifts in secondary files.memory_test.rscovering Rust signatures/exports, TS arrow functions, Python raw routes, and Cypher literal safety.init_test.rs.User-visible result
forgeguard init --agent ompinstalls rules, engineering skills, hooks, and MCP configuration into.agents/andAGENTS.md.forgeguard doctorvalidatesomphooks alongside Claude Code, Codex, Cursor, and Antigravity.forgeguard memory queryno longer errors on queries filtering by functions nameddelete,select,create, etc.Test plan
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo test --locked --workspacecargo build --locked --workspace --releasesh tests/install_test.shsh tests/wizard_test.shforgeguard gate --changed --output compactChecklist