Skip to content

Latest commit

 

History

History
115 lines (106 loc) · 7.4 KB

File metadata and controls

115 lines (106 loc) · 7.4 KB

Project Trueflow TODOs

[High] Review Chain Of Trust

Reviews can be signed by known PGP keys, and this can extend/scale into a network of trusted code. For example, open source libraries could accumulate layers of reviews from many individuals (across companies), and we can cryptographically verify who reviewed what.

Emacs Package (trueflow.el)

[High] Review Actions

  • [ ] Add a small “reviewed!” animation in review mode when approving/commenting.
  • [ ] Show reviewed vs remaining counts in bottom-right (e.g., 5 / 15), with green reviewed and yellow remaining.

[Medium] Iterative Review Mode

  • [ ] Implement side-by-side view (Diff vs New Content).

[High] Inline Editing

  • [ ] **Complex:** Implement true inline editing where changes in the review buffer apply to the file.
    • Draft Plan: Use `ediff` or a custom overlay that writes back to file on `C-c C-c`.
    • Alternative: Use `recursive-edit` in the file buffer.

Attestation & Verification

[Medium] Add Record::new constructor in store.rs

  • [ ] Encapsulate generation of `Uuid`, `SystemTime`, and `CURRENT_VERSION` in `Record::new` to simplify `mark.rs`.

[Medium] Cache imported pubkeys in Verifier

  • [ ] Optimize verification by maintaining a `HashSet` of imported key fingerprints to avoid redundant `gpg –import` calls.

[Medium] Refactor GPG logic into src/gpg.rs

  • [ ] Extract `GpgClient` to handle temp dir lifecycle and provide high-level `sign` and `verify` methods.

Product & Platform Roadmap

[High] Coverage mode + heatmap

  • [ ] Add `trueflow coverage` command that shells out to `cargo llvm-cov` or `just coverage`.
  • [ ] Add coverage mode to show least-reviewed files.
  • [ ] Add per-file heatmap (red = unreviewed, blue = well-reviewed).

[High] Coverage overlay and branch/path analysis

  • [ ] Add an overlay/command to show reviewed vs unreviewed lines and coverage.
  • [ ] Extend coverage to code paths/branches where possible.

[High] Semantic coverage by AST/codepath

  • [ ] Model how well reviewed a codepath is using AST relationships.

[High] Cognitive complexity scoring

  • [ ] Compute a complexity score per block to trigger review thresholds.

[High] Language coverage sweep

  • [ ] Add top 16 languages/markdown variants.
  • [ ] Add an `all_langs` repo fixture and E2E smoke tests per language.

[High] Swift review support

  • [ ] Add Swift language support for common review units: imports, structs/classes/enums, protocols, extensions, methods, and tests.
  • [ ] Add Swift fixtures and E2E review-generation tests covering realistic review cases.
  • [ ] Verify review UX for Swift-specific patterns like protocol conformance changes, extension-heavy files, and SwiftUI view bodies.

[High] Review types/modes

  • [ ] Support review types (security, dependencies, performance, readability, data structures, business logic).
  • [ ] Tag reviews with a type and make modes affect block ordering and filters (e.g., data structures shows structs).

[High] GitHub PR integration

  • [ ] Fetch/check out PRs, map review targets to the right diff, and post feedback as comments.

[High] Local LLM context helper

  • [ ] Call a local model to explain context behind a change.

[High] Rust lint/check sweep

  • [ ] Evaluate high-quality Rust lints (deny, udeps, semver-checks, geiger, nextest) and wire into `just check`.

[High] Installation experience

  • [ ] Formalize a high-quality install plan (cargo install vs curl | sh vs package managers).

[Medium] Add strict cargo clippy lints, apply fixes

[Medium] Perform in-depth cargo mutants run, apply fixes

[Medium] Add some padding (maybe one line ish) of space between end of

code block area and controls in TUI

BUG: this output in TUI:

“` struct #[derive(Debug, Clone)] in ./example_repos/all_languages/main.rs (hash=a85ccbc9), subblocks: └─ CodeParagraph

#[derive(Debug, Clone)] struct Config { name: String, threshold: i32, } “` Two things:

  1. struct #[derive(Debug, Clone)] is wrong, should be struct Config
  2. Let’s make the output a little nicer to read: (no ./) example_repos/all_languages/main.rs -> struct Config (hash=a85ccbc9) {directly embed the subblock tree here}

[READY] TUI UX: need a command to like batch approve a whole file (or module or dir, etc.)

[READY] There should be a trueflow command to reset the review state for the

current user for the current REV. i.e. delete all review records that point to the current rev. (without removing historical reviews, etc.)

[READY] There should be a trueflow CLI command to just list records in

reverse-chronological order, like a trueflow log command, defaults to say the most recent 16 or something.

[Medium] Diff vs new-content investigation

  • [ ] Define and verify how we present textual diff chunks versus reconstructed new content.

[Medium] jj integration

  • [ ] Explore how Jujutsu can improve diffing, review, and syncing flows.

[Medium] Website + docs

  • [ ] Add landing page, user docs, and onboarding guide.

[Medium] Static musl build + dependency audit

  • [ ] Ship a fully static musl build.
  • [ ] Audit dependencies; prefer pure Rust and reduce OpenSSL/FFI usage.

[Medium] Vultr deployment (org meta repo)

  • [ ] Spin up Vultr infra and document deployment via the org meta repo.

[Low] Performance sweep

  • [ ] Audit for performance improvements and implement top candidates.

[Medium] Add mode in review for speed-reading word-by-word SPC -> pause;

j back sentence; l forward sentence

[HIGH] please move the pgup/down, and [h]prev next down up to the right side of the navigation legend. parent and child can be in the middle. on the left, approve and comment, then mode. quit stays on furthest right. please confirm the order and layout with me.

** TODO [HIGH] off-by-1 in progress bar. seems to include summary page at end of review.

[HIGH] Summary page should allow Go back to selection page to start new review flow

[HIGH] Review selector start page should show reviewed status of selectables

[HIGH] Comment shouldn’t auto progress. If a user wants to progress to next block, let’s use spacebar. Or approve.

[HIGH] When a line wraps in the comment modal, it starts to look weird – the cursor isn’t at the end of the line and overwrites some of the text on the second line some characters earlier than it should.

[HIGH] complexity analysis of code -> constrain agent to reduce complexity w/o behavior or test changes

[HIGH] When we make a comment on code in trueflow, if we’re in a multi-page content pane, scope the comment (in the data of the comment) to the visible pane somehow. maybe comment_scope.{begin,end} or something. Also, same for the context – scoped to the scope.

[HIGH] When a comment is made on a scrollable review block, we shouldn’t reset the scroll bar back to the top. No navigation should occur.