All the small things.
Review code, pull requests, and docs without fighting your editor. Rip keeps the useful parts close and leaves the rest out.
rocket-launch
Pull Requests
xipkit/rocket-launch5 openOpenClosedMergedAll
#12feature/redline-hold-reasonsagent
claude · → main · today 09:41 · 4 files
3 passed+118 −22
#11fix/countdown-drift
bflowers · → main · today 09:12 · 2 files
3 passed+31 −9
#9docs/runbook-abort-modesagent
claude · → main · yesterday · 3 files
1 failedDraft+64 −0
#8refactor/sequencer-phase-enumagent
codex · → main · yesterday · 6 files
3 passed+210 −187
#6feature/telemetry-compression
bflowers · → main · 2 days ago · 2 files
3 passedDraft+40 −0
main↑↓ select↩ openR refresh
Your whole review queue
See every open pull request or merge request with its CI status, size, and author. Rip badges the ones agents wrote so you know where to look closer.
docs · ARCHITECTURE.md
ARCHITECTURE.md
Preview: ARCHITECTURE.md
1# Architecture
2
3Four programs, one manifest.
4Everything reads `mission.toml`.
5
6```mermaid
7sequenceDiagram
8 participant GC as ground-control
9 participant Seq as sequencer
10 GC->>Seq: start count
11 loop every second
12 Seq->>Seq: redline check
13 Seq-->>GC: phase + count
14 end
15```
16
17## The sequencer
18
19The count is a small state
20machine. Holds are automatic.
Architecture
Four programs, one manifest. Everything reads
mission.toml.ground-control
sequencer
ground-control
sequencer
start count
phase + count
The sequencer
mainLn 1, Col 1Spaces: 2Markdown
rocket-launch
Uncommitted changes
Split Files
Uncommitted changes
~/Work/bflowers/rocket-launch · 2 files · +4 −1
src/sequencer.rs+1−1Viewed
const MIN_BATTERY_V@@ -78,7 +78,7 @@
78/// Redlines checked every second of the count.
79const MAX_CHAMBER_PRESSURE_BAR: f64 = 92.0;
80const MIN_LOX_PRESSURE_BAR: f64 = 3.2;
81−const MIN_BATTERY_V: f64 = 27.5;
81+const MIN_BATTERY_V: f64 = 27.0;
82
83impl Sequencer {
84 pub fn from_manifest(path: &str) -> Result<Self> {
85 let raw = std::fs::read_to_string(path)?;
main
src
src
main.rs
sequencer.rs
telemetry.rs
main.rs
1//! Kestrel launch sequencer.
2
3mod sequencer;
4mod telemetry;
5
6use sequencer::{Phase, Sequencer};
7
8fn main() -> anyhow::Result<()> {
9 let mut seq = Sequencer::from_manifest("mission.toml")?;
10 while seq.phase() != Phase::Liftoff {
11 let frame = telemetry::sample(seq.t());
12 match seq.step(&frame) {
13 Ok(phase) => println!("{:<6} T{:+}", phase.label(), seq.t()),
14 Err(abort) => return Err(abort.into()),
15 }
16 }
17 println!("LIFTOFF");
18 Ok(())
19}
git
Workspace: Toggle Git StatusG
Git: Switch BranchK B
Git: Open Pull Requests
Git: Uncommitted ChangesG
Git: File History
Review: Toggle Whitespace
Editor: Move Right
mainLn 1, Col 1Spaces: 2Rust
rocket-launch
rocket-launch
.github
docs
src
tools
Cargo.toml
mission.toml
README.md
Locations
Locations3 locations
warning: unused variable `frame`
--> src/sequencer.rs:147:22
error[E0308]: mismatched types
--> src/main.rs:24:31
Traceback (most recent call last):
File "tools/trajectory.py", line 44, in main
↩ jump to the first hit · ↑↓ ↩ walk the list · esc back to the editor
src/sequencer.rs
line 147, col 22
146 }
147 if frame.lox_pressure < MIN_LOX_PRESSURE_BAR && self.t > -120 {
148 return Some(format!("LOX ullage {:.2} bar", frame.lox_pressure));
149 }
src/main.rs
line 24, col 31
23 while seq.phase() != Phase::Liftoff {
24 let frame = telemetry::sample(seq.t());
25 match seq.step(&frame) {
main
rocket-launch
#12 · 4 files
src/sequencer.rs+14 −9
src/redlines.rs+22 −3
tests/hold.rs+41 −0
docs/RUNBOOK.md+6 −1
#12 feature/redline-hold-reasons
Request changesApprove
src/sequencer.rshunk 1 of 3J/K next · V seen
@@ -142,9 +142,14 @@ impl Sequencer
142142 match self.phase {
143143 Phase::Hold { at, reason } => {
144- if self.operator_released() {
144+ if self.operator_released() && self.redlines.all_clear() {
145145 self.resume_from(at);
146+ self.log("hold released", reason);
146147 }
b
bflowers2 min ago
If the hold is released before
redline_clear fires we'll re-enter Hold on the next tick. Should this also check self.redlines.all_clear()?C
claudeagentjust now
Good catch. Pushed a follow-up that gates the release on
all_clear() and added a test for the double-hold case.Reply…ResolveComment ↩
147148 }
148149 Phase::PropellantLoad => self.check_redlines(),
149150 _ => {}
150151 }
feature/redline-hold-reasons1 of 4 files seen2 comments
Review where you read
Comment on any line, step through hunks with J/K, and mark files seen. Then approve or request changes. Rip syncs every thread with GitHub or GitLab, including agent replies.