consciousness/poc-memory/Cargo.toml
ProofOfConcept ec79d60fbd tui: fix cursor desync by scanning rendered buffer
Instead of simulating ratatui's word wrapping algorithm, scan the
rendered buffer to find the actual cursor position. This correctly
handles word wrapping, unicode widths, and any other rendering
nuances that ratatui applies.

The old code computed wrapped_height() and cursor position based on
simple character counting, which diverged from ratatui's WordWrapper
that respects word boundaries.

Now we render first, then walk the buffer counting visible characters
until we reach self.cursor. This is O(area) but the input area is
small (typically < 200 cells), so it's negligible.
2026-03-19 00:40:05 -04:00

61 lines
1.2 KiB
TOML

[package]
name = "poc-memory"
version.workspace = true
edition.workspace = true
[dependencies]
capnp = "0.20"
uuid = { version = "1", features = ["v4"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
bincode = "1"
regex = "1"
chrono = "0.4"
clap = { version = "4", features = ["derive"] }
libc = "0.2"
faer = "0.24.0"
rkyv = { version = "0.7", features = ["validation", "std"] }
memmap2 = "0.9"
rayon = "1"
peg = "0.8"
paste = "1"
jobkit = { git = "https://evilpiepirate.org/git/jobkit.git/" }
jobkit-daemon = { git = "https://evilpiepirate.org/git/jobkit-daemon.git/" }
poc-agent = { path = "../poc-agent" }
tokio = { version = "1", features = ["rt-multi-thread"] }
redb = "2"
log = "0.4"
ratatui = "0.30"
skillratings = "0.28"
crossterm = { version = "0.28", features = ["event-stream"] }
[build-dependencies]
capnpc = "0.20"
[lib]
name = "poc_memory"
path = "src/lib.rs"
[[bin]]
name = "poc-memory"
path = "src/main.rs"
[[bin]]
name = "memory-search"
path = "src/bin/memory-search.rs"
[[bin]]
name = "poc-hook"
path = "src/bin/poc-hook.rs"
[[bin]]
name = "merge-logs"
path = "src/bin/merge-logs.rs"
[[bin]]
name = "diag-key"
path = "src/bin/diag-key.rs"
[[bin]]
name = "find-deleted"
path = "src/bin/find-deleted.rs"