|
20 | 20 | {"id":"oracle-1nbi","title":"PLSQL-MCP-005 — Implement foundation tools: `find_callers`, `find_callees`, `get_dependencies`","description":"Imported from `plan.md` v0.11 on 2026-05-12.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-12T14:04:54.684845451Z","updated_at":"2026-05-16T05:27:11.296424164Z","closed_at":"2026-05-16T05:27:11.296092836Z","close_reason":"Implemented crates/plsql-mcp/src/graph_tools.rs (commit 3917bf1): find_callers/find_callees/get_dependencies foundation-static tools querying the DepGraph an AnalysisRun carries. run_find_callers->query_reverse_neighbors (dependents); run_find_callees->query_neighbors full edge detail (kind/confidence); run_get_dependencies->query_neighbors reshaped to sorted deduped logical-id list. Pure delegation to plsql-depgraph's already-tested neighbour queries + the reshape; unknown target => typed GraphToolError::Query echoing selector (R13 absent reported not empty-success). register_graph_tools idempotent FoundationStatic. 7 tests over a real 3-node fixture (fwd/rev edge counts, sorted-unique deps, unknown=typed error, leaf empty, JSON round-trip, descriptor dedup/tier); full plsql-mcp suite 161 pass; cargo clippy --no-deps -D warnings clean; added plsql-depgraph dep. Builds on ENG-004 (AnalysisRun.dep_graph). Cross-checked vs /oracle DATABASE-REFERENCE.md (DBA_DEPENDENCIES caller/callee semantics).","external_ref":"PLSQL-MCP-005","source_repo":"oracle","compaction_level":0,"original_size":0,"labels":["area:mcp","component:mcp-foundation","effort:M","layer:3-plus","project:plsql-intelligence"],"dependencies":[{"issue_id":"oracle-1nbi","depends_on_id":"oracle-1ia","type":"blocks","created_at":"2026-05-12T14:53:52.778758777Z","created_by":"durakovic","metadata":"{}","thread_id":""},{"issue_id":"oracle-1nbi","depends_on_id":"oracle-e039","type":"blocks","created_at":"2026-05-12T14:19:47.425092127Z","created_by":"durakovic","metadata":"{}","thread_id":""}]} |
21 | 21 | {"id":"oracle-1p7","title":"PLSQL-SYM-010 — Feed catalog `%TYPE`/`%ROWTYPE`/synonyms/overloads/indexed-column facts into symbol resolution","description":"Imported from `plan.md` v0.11 on 2026-05-12.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-12T14:04:54.684845451Z","updated_at":"2026-05-15T21:05:11.915595326Z","closed_at":"2026-05-15T21:05:11.915317389Z","close_reason":"Shipped plsql-symbols::catalog_feed (PLSQL-SYM-010) — CatalogResolutionSource trait (engine impls over CatalogSnapshot; no plsql-symbols->plsql-catalog dep, mirrors DeclLike/StoredFact decoupling) feeds all five fact families into resolution: %TYPE (column_type), %ROWTYPE (rowtype_columns), synonyms (synonym_target + follow_catalog_synonym w/ hop cap, cycle + db-link opacity), overloads (overloads -> SYM-009 resolve_overload via resolve_catalog_overload), indexed columns (indexed_columns). resolve_anchor_with_catalog: source-first then catalog fallback, CatalogBackedAnchor keeps catalog-only results DeclId-free (no faked decls). 10 unit tests w/ FakeCatalog conformance, clippy clean.","external_ref":"PLSQL-SYM-010","source_repo":"oracle","compaction_level":0,"original_size":0,"labels":["component:semantic-layer","effort:L","layer:2","project:plsql-intelligence"],"dependencies":[{"issue_id":"oracle-1p7","depends_on_id":"oracle-4ru","type":"blocks","created_at":"2026-05-12T14:08:30.983858299Z","created_by":"durakovic","metadata":"{}","thread_id":""},{"issue_id":"oracle-1p7","depends_on_id":"oracle-m3b","type":"blocks","created_at":"2026-05-12T14:11:36.059285884Z","created_by":"durakovic","metadata":"{}","thread_id":""}]} |
22 | 22 | {"id":"oracle-1p93","title":"PLSQL-MCP-LIVE-013 — Implement `patch_view` (same flow as `patch_package`)","description":"Imported from `plan.md` v0.11 on 2026-05-12.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-12T14:04:54.684845451Z","updated_at":"2026-05-15T14:25:16.248183725Z","closed_at":"2026-05-15T14:25:16.247912597Z","close_reason":"Shipped run_patch_view in plsql-mcp::patch. CREATE OR REPLACE VIEW header synthesised; same DBMS_ASSERT guards + preview registry flow as patch_package. 5 unit tests; 110 total in plsql-mcp. register_patch_view_tool exposes the descriptor.","external_ref":"PLSQL-MCP-LIVE-013","source_repo":"oracle","compaction_level":0,"original_size":0,"labels":["area:mcp","component:mcp-foundation","effort:S","layer:3-plus","project:plsql-intelligence"],"dependencies":[{"issue_id":"oracle-1p93","depends_on_id":"oracle-jhrs","type":"blocks","created_at":"2026-05-12T14:20:22.656746896Z","created_by":"durakovic","metadata":"{}","thread_id":""}]} |
| 23 | +{"id":"oracle-1t4j","title":"Ignore Beads write lock in inner gitignore","status":"closed","priority":2,"issue_type":"chore","created_at":"2026-06-30T06:17:43.637998675Z","created_by":"durakovic","updated_at":"2026-06-30T06:18:08.936901538Z","closed_at":"2026-06-30T06:18:08.936840379Z","close_reason":"Completed: added explicit .write.lock ignore pattern to .beads/.gitignore so Beads runtime locks do not leak into git status.","source_repo":"plsql-intelligence","source_repo_path":"/home/durakovic/projects/plsql-intelligence","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"oracle-1t4j","depends_on_id":"oracle-jfqh","type":"discovered-from","created_at":"2026-06-30T06:17:43.637998675Z","created_by":"durakovic","metadata":"{}","thread_id":""}]} |
23 | 24 | {"id":"oracle-1ucd","title":"PLSQL-OSS-AUDIT — plsql-accretion gate functions use stringly-typed Result<String, String> in public API","description":"crates/plsql-accretion/src/gate.rs exposes a cluster of PUBLIC functions that all return Result<String, String> -- both the Ok payload and the Err are bare strings:\n\n gate.rs:344 pub fn roundtrip_check(corpus_dir, fixtures_dir) -> Result<String, String>\n gate.rs:455 pub fn honesty_check(candidate_text) -> Result<String, String>\n gate.rs:512 pub fn residue_check(candidate_text, fixtures_dir) -> Result<String, String>\n gate.rs:599 pub fn measure_estate_metrics(estate) -> Result<String, String>\n gate.rs:624 pub fn baseline_cmp(baseline_json, metrics_text) -> Result<String, String>\n gate.rs:699 pub fn pins_check(repo_root, candidate_text) -> Result<String, String>\n\nThis is inconsistent with the rest of the workspace, which is uniformly thiserror-based (36 crates depend on thiserror; no anyhow). plsql-accretion itself already defines a typed ProposerError enum in proposer.rs and uses it there -- so the gate module is the odd one out within its own crate.\n\nThe CompletionBackend trait (proposer.rs:659) similarly uses Result<String, String>, though that one is at least documented as deliberately opaque.\n\nWhy it matters: stringly-typed errors in a public API force consumers to string-match to branch on failure mode, cannot be matched exhaustively, and lose structure. A public reviewer evaluating the crate's API quality will flag the inconsistency -- the project clearly knows how to do typed errors (thiserror everywhere else) and just didn't here.\n\nSuggested fix: introduce a GateError thiserror enum (or reuse/extend an existing accretion error type) with variants for the distinct failure modes these functions can hit (I/O, parse, honesty-violation, residue-found, baseline-regression, pin-mismatch). The Ok arm carrying a human report string is acceptable, but a typed Ok payload would be cleaner. Lower priority than the half-finished-feature beads but worth doing before tagging a stable API.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-05-22T06:35:20.372971224Z","created_by":"durakovic","updated_at":"2026-05-22T08:23:42.220286396Z","closed_at":"2026-05-22T08:23:42.220000498Z","close_reason":"Replaced stringly-typed Result<String,String> in all six public gate.rs check primitives (roundtrip_check, honesty_check, residue_check, measure_estate_metrics, baseline_cmp, pins_check) with the crate's typed GateError (thiserror), consistent with proposer.rs ProposerError and the workspace thiserror idiom. Added 6 new GateError variants: Io, Parse, HonestyViolation (G7), PrivacyResidue (G8), BaselineRegression (G6), PinMismatch (G9) — each carrying precise stage-tagged Display text. Updated parse_honesty helper, the usr-gate-rs binary (maps GateError->String evidence via err_str), and the gate.rs tests to assert typed variants instead of string .contains. Evidence: TDD — tests rewritten to matches!(e, GateError::Variant(..)) failed to compile (variants absent), then pass after adding them. cargo build/test/clippy -p plsql-accretion all green incl. gate_selftest 6/6.","source_repo":"oracle","compaction_level":0,"original_size":0} |
24 | 25 | {"id":"oracle-1w0","title":"PLSQL-DEP-005 — Implement edge extraction for `TriggersOn` (trigger event → table mapping)","description":"Imported from `plan.md` v0.11 on 2026-05-12.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-12T14:04:54.684845451Z","updated_at":"2026-05-12T18:38:45.482310087Z","closed_at":"2026-05-12T18:38:45.482003319Z","close_reason":"Implemented","external_ref":"PLSQL-DEP-005","source_repo":"oracle","compaction_level":0,"original_size":0,"labels":["component:dependency-graph","effort:S","layer:2","project:plsql-intelligence"],"dependencies":[{"issue_id":"oracle-1w0","depends_on_id":"oracle-h2v","type":"blocks","created_at":"2026-05-12T14:52:02.431141509Z","created_by":"durakovic","metadata":"{}","thread_id":""}]} |
25 | 26 | {"id":"oracle-1wsf","title":"PLSQL-PARSE-RECOVER — recover_to_statement_boundary does not skip Oracle q-quote literals (q'[..]'/nq'..'); a ; inside q'[ ; ]' is falsely treated as a statement boundary, splitting recovery inside a string","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-05-16T07:03:33.489332087Z","created_by":"durakovic","updated_at":"2026-05-16T07:05:36.311690494Z","closed_at":"2026-05-16T07:05:36.311418504Z","close_reason":"Fixed: recover_to_statement_boundary now skips q'X..X'/nq'X..X' literals (commit above). TDD test recover_skips_q_quote_string_literals covers <>/[]/nq! forms + embedded ;/apostrophe; 14/14 recovery tests green, clippy/ubs clean.","source_repo":"oracle","compaction_level":0,"original_size":0} |
|
0 commit comments