Repo Time Machine — ask one question about any Git history.
Who broke it · when it appeared · who still owns it · in ~10ms.
FluxTap · Tracefuse · SignShield · Timeforge
GitHub shows what changed. Timeforge answers why it hurts:
| You ask | You get |
|---|---|
promisor |
first commit that introduced it + later churn |
#12 |
PR files + what touched them after |
panic in auth |
ranked suspects in milliseconds |
| a file path | blame zones, bus factor, ghosts |
Local or any public owner/repo — cached under ~/.timeforge/repos, updated in place.
git clone https://github.com/FounderB/Timeforge.git
cd Timeforge && cargo build --release
# one question
./target/release/timeforge ask unwrap
# or bare:
./target/release/timeforge "unwrap"
# any GitHub repo
./target/release/timeforge open rust-lang/mdBook
./target/release/timeforge --repo rust-lang/mdBook ask panic
# UI — Ask box + explorer
./target/release/timeforge serve
# → http://127.0.0.1:8790timeforge ask unwrap
timeforge "panic in auth"
timeforge ask '#12'
timeforge --repo rust-lang/mdBook ask promisorOne answer with evidence · method · confidence · drill-downs. Prefer proof (pickaxe / dig / blame) over subject heuristics.
timeforge repos # list ~/.timeforge/repos
timeforge repos rm owner/repo --yes # delete one cache
timeforge repos clean --yes # wipe all cachesGlobal: --repo <path|owner/repo|url> · --update
- Ask — one answer with
evidence·method·confidence· drill-downs - Proof over keywords — pickaxe/blame & dig beat subject heuristics
- Archaeology —
git log -Sbirth certificate for a pattern - Fix↔Break — link hotfixes to earlier culprits (weak co-change never wins Ask)
- Blame Map — ownership color strip
- PR Time Travel — files + later touches
- Ghost authors — silent owners + path bus-factor
- Time Machine — rename-aware timeline
- Heatmap · Blast · Hotspots · Stale · Churn
- In-place Update/Repair — never wipe-and-reclone by default
| Spec | Example |
|---|---|
owner/repo |
FounderB/SignShield |
| HTTPS | https://github.com/rust-lang/mdBook |
| Local path | /home/you/code/app |
timeforge open owner/repo
timeforge open owner/repo --update
timeforge open owner/repo --repair # in-place materialize / fix promisor
timeforge reposPartial clone screaming about promisor? Update or Repair in the UI — same path, new objects only.
flowchart LR
Q[Ask / hunt] --> R{Route}
R -->|#PR| P[PR Travel]
R -->|token| Parallel
Parallel --> W[why]
Parallel --> D[dig -S]
Parallel --> F[fix↔break]
W --> A[ANSWER]
D --> A
F --> A
P --> A
A --> UI[Web / CLI]
- Rust CLI + tiny HTTP UI
- Pure git under the hood (offline-friendly, network when needed)
- MIT · FounderB
MIT © FounderB