centralize workspace dependency versions
7 unmodified lines8910111213141516171819202122232425262728293031323334353637383940414243444546474849507 unmodified lines "antigravity-bridge",]resolver = "2"
[workspace.dependencies]anyhow = "1"async-stream = "0.3"axum = "0.8"base64 = "0.22"blake3 = "1.8.5"bytemuck = "1.25.0"chrono = "0.4.44"clap = { version = "4", features = ["derive"] }dirs = "5"emojis = "0.8.1"futures = "0.3"hex = "0.4"kdl = "6.5"pulldown-cmark = "0.11"rand = "0.8"regex = "1"reqwest = "0.13"rusqlite = { version = "0.39", features = ["bundled"] }rustls = { version = "0.23", features = ["ring"] }serde = { version = "1", features = ["derive"] }serde_json = "1"sha2 = "0.10"sqlite-vec = "0.1.0"tempfile = "3"tokio = { version = "1", features = ["full"] }tokio-tungstenite = "0.23"tracing = "0.1.44"tracing-subscriber = "0.3.23"tree-sitter-language-pack = "1.11.0"tree-sitter-tags = "0.26.9"twilight-gateway = "0.17.1"twilight-http = "0.17.1"twilight-model = "0.17.1"unicode-segmentation = "1"uuid = { version = "1", features = ["v4"] }
[profile.dev]opt-level = 290 unmodified lines919293949590 unmodified lines{"id":"int-623e8776","kind":"field_change","created_at":"2026-07-01T08:54:40.646821049Z","actor":"dawn","issue_id":"klbr-2kc","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Collapsed KDL optional-node parser helpers and centralized serde integer deserializers"}}{"id":"int-4cb60a18","kind":"field_change","created_at":"2026-07-01T09:02:05.887375856Z","actor":"dawn","issue_id":"klbr-3ha","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Refactored shared SSE and media data-url parsing in models.rs; added focused coverage and verified klbr-core tests."}}{"id":"int-d2a36a78","kind":"field_change","created_at":"2026-07-01T09:11:34.33603338Z","actor":"dawn","issue_id":"klbr-647","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Migrated klbr-core Message.role to a Role enum with lowercase serde compatibility and updated core role checks; verified workspace tests."}}{"id":"int-e8560d77","kind":"field_change","created_at":"2026-07-01T09:14:49.216625941Z","actor":"dawn","issue_id":"klbr-ow7","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Extracted duplicated agent run-loop stream-failure backoff handling into a shared helper with a named retry limit; verified klbr-core tests."}}{"id":"int-24fd625d","kind":"field_change","created_at":"2026-07-01T09:18:07.32698818Z","actor":"dawn","issue_id":"klbr-q53","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Moved external crate versions into root workspace.dependencies and switched member manifests to workspace=true; verified cargo metadata, workspace check, and workspace tests."}}53 unmodified lines5455565758585960616234 unmodified lines53 unmodified lines{"_type":"issue","id":"klbr-647","title":"core: migrate Message.role from String to Role enum","description":"Message.role is currently represented as a raw String, which leads to fragile string comparisons ('assistant', 'tool', etc.) all over the codebase. Migrate to a proper Role enum.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:36Z","created_by":"dawn","updated_at":"2026-07-01T09:11:34Z","started_at":"2026-07-01T09:03:58Z","closed_at":"2026-07-01T09:11:34Z","close_reason":"Migrated klbr-core Message.role to a Role enum with lowercase serde compatibility and updated core role checks; verified workspace tests.","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-so2","title":"core: decompose agent.rs run_turn() god method","description":"agent.rs run_turn() is 500+ lines, managing execution, tool loops, preemption, and discord integration. Break down tool execution loops and phase handlers into separate functions.","status":"open","priority":2,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:29Z","created_by":"dawn","updated_at":"2026-06-30T21:39:29Z","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-ow7","title":"core: refactor agent.rs run() loop failure-handling duplication","description":"agent.rs run() loop copy-pastes the exact same ~30-line backoff/failure-handling parsing block 4 times across different event stream branches. Extract to a helper function.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:23Z","created_by":"dawn","updated_at":"2026-07-01T09:14:49Z","started_at":"2026-07-01T09:12:29Z","closed_at":"2026-07-01T09:14:49Z","close_reason":"Extracted duplicated agent run-loop stream-failure backoff handling into a shared helper with a named retry limit; verified klbr-core tests.","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-7e0","title":"core: clean up dead tool files in src/tools/","description":"There are 12 unused tool files in klbr-core/src/tools/ (remember.rs, recall.rs, tag_memory.rs, etc.) that are not declared as submodules or registered. They should be deleted.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:16Z","created_by":"dawn","updated_at":"2026-06-30T22:08:24Z","started_at":"2026-06-30T22:05:01Z","closed_at":"2026-06-30T22:08:24Z","close_reason":"Removed unregistered old memory tool modules and updated memory docs","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-q53","title":"workspace: consolidate dependency versions via workspace.dependencies","description":"Workspace is not utilizing cargo workspace dependencies, causing version drift between core, daemon, discord, and ipc. Consolidate them in the root Cargo.toml.","status":"open","priority":2,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:10Z","created_by":"dawn","updated_at":"2026-06-30T21:39:10Z","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-q53","title":"workspace: consolidate dependency versions via workspace.dependencies","description":"Workspace is not utilizing cargo workspace dependencies, causing version drift between core, daemon, discord, and ipc. Consolidate them in the root Cargo.toml.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:10Z","created_by":"dawn","updated_at":"2026-07-01T09:18:07Z","started_at":"2026-07-01T09:15:45Z","closed_at":"2026-07-01T09:18:07Z","close_reason":"Moved external crate versions into root workspace.dependencies and switched member manifests to workspace=true; verified cargo metadata, workspace check, and workspace tests.","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-6m2","title":"web: refactor and split App.svelte monolith","description":"App.svelte is currently a 3000+ line file holding all UI, WS client, and styles. Needs to be split into modular components like Sidebar, ChatPane, Metrics, and XmlVisualizer.","status":"open","priority":2,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-30T21:39:03Z","created_by":"dawn","updated_at":"2026-06-30T21:39:03Z","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-ds9","title":"refactor and simplify core agent loop without losing behaviour","status":"open","priority":2,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-30T21:20:30Z","created_by":"dawn","updated_at":"2026-06-30T21:20:30Z","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-jae","title":"Design aggregate evidence value representation","description":"LongMemEval aggregate misses show that a prompt fix would be benchmark-shaped and brittle. The structural gap is evidence representation: EvidenceFactRow currently stores only the first numeric value from a chunk, often capturing list ordinals, dates, or distractors instead of the values needed for counts/sums. Design and implement a general value representation for memory evidence that can keep multiple numeric mentions with nearby unit/currency/date/entity context, then only enable deterministic aggregate synthesis when the rendered facts are grounded and unambiguous.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T21:01:47Z","created_by":"dawn","updated_at":"2026-06-30T21:11:59Z","started_at":"2026-06-30T21:02:38Z","closed_at":"2026-06-30T21:11:59Z","close_reason":"Implemented typed evidence value mentions for fact rows, rendered them in memory packets, and made aggregate synthesis use only finite same-kind/unit aggregateable values. Ordinals, dates, and mixed-unit rows now abstain instead of falling back to first-number arithmetic; no prompt fixes were added.","dependency_count":0,"dependent_count":0,"comment_count":0}{"_type":"issue","id":"klbr-2jh","title":"Inspect aggregate and value-synthesis LongMemEval misses","description":"The sample-100 query-time LongMemEval run showed 12 official failures where the answer ref was rendered but the answer value was not visible, plus 10 value-visible reader or synthesis failures. Inspect aggregate_count, aggregate_sum, lookup, and update_resolution misses to decide whether packet rendering, fact extraction, or final reader prompting needs the next fix. Use measured miss buckets rather than broad context fanout.","notes":"Inspected sample-100 aggregate/value misses without prompt changes. User explicitly rejected prompt-fix/hardcoding route. Findings: many aggregate misses are not simple retrieval failures; literal answer_value_visible is misleading for derived answers like 5+3=8 or component expenses summing to 85, and short numeric answers can produce false positives from unrelated dates/list ordinals. Also found a real diagnostic bug: assemble_context marked every selected packet ref as used/rendered even when render_evidence_packet omitted that ref under packet budget. Fixed core ref accounting so render_evidence_packet_with_refs reports emitted body/fact/timeline refs and assemble_context.used_refs tracks only those. Tightened bench diagnostics so answer_value_visible requires an answer-bearing ref to have been emitted, and critical_fact_row_visible requires a fact row for an answer-bearing ref. Targeted retrieval-only rerun for 46a3abf7 now reports answer_bearing_ref_selected=1.0 but rendered/in_context/value_visible/critical_fact_row_visible=0.0, correctly rebucketing it as selected_not_rendered instead of value-visible reader failure. Tests: cargo fmt --check, cargo test -p klbr-core, cargo test -p klbr-bench, git diff --check.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-30T20:47:37Z","created_by":"dawn","updated_at":"2026-06-30T21:01:48Z","started_at":"2026-06-30T20:49:47Z","closed_at":"2026-06-30T21:01:48Z","close_reason":"Completed structural inspection and diagnostic fix; filed aggregate value representation follow-up.","dependency_count":0,"dependent_count":0,"comment_count":0}34 unmodified lines6 unmodified lines789101112131415161718192021222324252627281112131415161718192021222324252627286 unmodified linesname = "antigravity-bridge"path = "src/main.rs"
[dependencies]tokio = { version = "1", features = ["full"] }axum = { version = "0.8" }reqwest = { version = "0.13", features = ["json", "stream", "form"] }serde = { version = "1", features = ["derive"] }serde_json = "1"anyhow = "1"futures = "0.3"tracing = "0.1.44"tracing-subscriber = "0.3.23"base64 = "0.22"regex = "1"sha2 = "0.10"hex = "0.4"uuid = { version = "1", features = ["v4"] }rand = "0.8"async-stream = "0.3"chrono = { version = "0.4", features = ["clock"] }dirs = "5"anyhow = { workspace = true }async-stream = { workspace = true }axum = { workspace = true }base64 = { workspace = true }chrono = { workspace = true, features = ["clock"] }dirs = { workspace = true }futures = { workspace = true }hex = { workspace = true }rand = { workspace = true }regex = { workspace = true }reqwest = { workspace = true, features = ["json", "stream", "form"] }serde = { workspace = true }serde_json = { workspace = true }sha2 = { workspace = true }tokio = { workspace = true }tracing = { workspace = true }tracing-subscriber = { workspace = true }uuid = { workspace = true }2 unmodified lines34567789101112910111213141516171819131415161718192 unmodified linesversion = "0.1.0"edition = "2021"
[dependencies]anyhow = "1"anyhow = { workspace = true }blake3 = { workspace = true }bytemuck = { workspace = true }chrono = { workspace = true }clap = { workspace = true }klbr-core = { path = "../klbr-core" }serde = { version = "1", features = ["derive"] }serde_json = "1"tempfile = "3"tokio = { version = "1", features = ["full"] }unicode-segmentation = "1"chrono = "0.4.44"rusqlite = { version = "0.39", features = ["bundled"] }rand = "0.8"blake3 = "1.8.5"bytemuck = "1.25.0"clap = { version = "4", features = ["derive"] }rand = { workspace = true }rusqlite = { workspace = true }serde = { workspace = true }serde_json = { workspace = true }tempfile = { workspace = true }tokio = { workspace = true }unicode-segmentation = { workspace = true }6 unmodified lines78910111213141516171819202122232425262728111213141516171819202122232425262728293030316 unmodified linesname = "klbr_core"path = "src/lib.rs"
[dependencies]sqlite-vec = "0.1.0"tokio = { version = "1", features = ["full"] }rusqlite = { version = "0.39", features = ["bundled"] }reqwest = { version = "0.13", features = ["json", "stream", "rustls"] }serde = { version = "1", features = ["derive"] }serde_json = "1"kdl = "6.5"anyhow = "1"base64 = "0.22"futures = "0.3"dirs = "5"tracing = "0.1.44"tracing-subscriber = "0.3.23"chrono = "0.4.44"pulldown-cmark = "0.11"regex = "1"tree-sitter-language-pack = "1.11.0"tree-sitter-tags = "0.26.9"anyhow = { workspace = true }base64 = { workspace = true }chrono = { workspace = true }dirs = { workspace = true }futures = { workspace = true }kdl = { workspace = true }pulldown-cmark = { workspace = true }regex = { workspace = true }reqwest = { workspace = true, features = ["json", "stream", "rustls"] }rusqlite = { workspace = true }serde = { workspace = true }serde_json = { workspace = true }sqlite-vec = { workspace = true }tokio = { workspace = true }tracing = { workspace = true }tracing-subscriber = { workspace = true }tree-sitter-language-pack = { workspace = true }tree-sitter-tags = { workspace = true }
[dev-dependencies]tempfile = "3"tempfile = { workspace = true }2 unmodified lines345678910111011121314151612131415162 unmodified linesversion = "0.1.0"edition = "2021"
[dependencies]anyhow = { workspace = true }futures = { workspace = true }klbr-core = { path = "../klbr-core" }klbr-discord = { path = "../klbr-discord" }klbr-ipc = { path = "../klbr-ipc" }tokio = { version = "1", features = ["full"] }anyhow = "1"futures = "0.3"tracing = "0.1.44"tracing-subscriber = "0.3.23"serde_json = "1"tokio-tungstenite = "0.23"serde_json = { workspace = true }tokio = { workspace = true }tokio-tungstenite = { workspace = true }tracing = { workspace = true }tracing-subscriber = { workspace = true }6 unmodified lines7891011121314151213141516171819202122232425261617181920212223242526272829296 unmodified linesname = "klbr_discord"path = "src/lib.rs"
[dependencies]anyhow = { workspace = true }base64 = { workspace = true }chrono = { workspace = true }emojis = { workspace = true }klbr-core = { path = "../klbr-core" }anyhow = "1"base64 = "0.22"chrono = "0.4.44"emojis = "0.8.1"regex = "1"reqwest = { version = "0.13", features = ["json", "stream"] }rustls = { version = "0.23", features = ["ring"] }rusqlite = { version = "0.39", features = ["bundled"] }serde = { version = "1", features = ["derive"] }serde_json = "1"tokio = { version = "1", features = ["full"] }tracing = "0.1.44"twilight-gateway = "0.17.1"twilight-http = "0.17.1"twilight-model = "0.17.1"regex = { workspace = true }reqwest = { workspace = true, features = ["json", "stream"] }rusqlite = { workspace = true }rustls = { workspace = true }serde = { workspace = true }serde_json = { workspace = true }tokio = { workspace = true }tracing = { workspace = true }twilight-gateway = { workspace = true }twilight-http = { workspace = true }twilight-model = { workspace = true }
[dev-dependencies]tempfile = "3"tempfile = { workspace = true }3 unmodified lines456789893 unmodified linesedition = "2021"
[dependencies]klbr-core = { path = "../klbr-core" }serde = { version = "1", features = ["derive"] }serde_json = "1"serde = { workspace = true }serde_json = { workspace = true }