@@ -131,13 +131,15 @@ psrchive-ele/
131131│ │ └── index.ts # Context bridge (IPC → renderer)
132132│ ├── shared/
133133│ │ ├── commands.ts # Shared command ids for menu / shortcuts / UI
134+ │ │ ├── processing.ts # Shared processing/session/TOA/batch types
134135│ │ └── update.ts # Shared updater state types
135136│ └── renderer/src/
136137│ ├── App.tsx # Root: data loading, shared command handlers
137138│ ├── components/
138139│ │ ├── TitleBar.tsx # Icon command menu + updater status
139140│ │ ├── Sidebar.tsx
140141│ │ ├── MainPanel.tsx
142+ │ │ ├── ProcessingInspector.tsx # Session-based PSRCHIVE workflow UI
141143│ │ ├── StatusBar.tsx
142144│ │ ├── SettingsPanel.tsx # Categorized settings center
143145│ │ ├── HelpPanel.tsx
@@ -159,11 +161,14 @@ psrchive-ele/
159161│ │ ├── main.py # FastAPI app
160162│ │ ├── routes.py # REST endpoints
161163│ │ ├── data_provider.py # Mock / real psrchive data
164+ │ │ ├── processing.py # Session materialization + paz/pam/pat/pac orchestration
162165│ │ └── psrcat.py # PSRCAT database parser
163166│ └── requirements.txt
164167├── docs/ # Developer documentation
165168│ ├── architecture.md # System overview & communication flows
166169│ ├── api.md # Backend REST API reference
170+ │ ├── processing-guide.md # End-user session processing workflow guide
171+ │ ├── psrchive-features.md # Implemented vs planned PSRCHIVE capability matrix
167172│ ├── components.md # React component reference
168173│ ├── state.md # Jotai atom reference
169174│ ├── shortcuts.md # Keyboard shortcuts
@@ -179,12 +184,20 @@ psrchive-ele/
179184| Method | Path | Description |
180185| --------| ---------------------------| ----------------------------------|
181186| GET | ` /api/health ` | Backend status + provider name |
187+ | GET | ` /api/capabilities ` | Runtime/provider/CLI processing capabilities |
182188| GET | ` /api/files?dir= ` | List archive files in directory |
183189| GET | ` /api/archive?path= ` | Archive metadata |
184190| GET | ` /api/archive/profile ` | Pulse profile (Stokes I/Q/U/V) |
185191| GET | ` /api/archive/waterfall ` | Frequency × Phase heatmap |
186192| GET | ` /api/archive/time-phase ` | Time × Phase heatmap |
187193| GET | ` /api/archive/bandpass ` | Mean intensity per channel |
194+ | POST | ` /api/sessions ` | Create a non-destructive processing session |
195+ | PATCH | ` /api/sessions/{id}/recipe ` | Update the active processing recipe |
196+ | GET | ` /api/sessions/{id}/preview/* ` | Session preview metadata + charts |
197+ | POST | ` /api/sessions/{id}/export ` | Export a processed archive copy |
198+ | POST | ` /api/sessions/{id}/toa ` | Run ` pat ` and return TOA + residual preview |
199+ | POST | ` /api/sessions/{id}/calibration/preview ` | Inspect the active ` pac ` preview command/log |
200+ | DELETE | ` /api/sessions/{id} ` | Destroy a processing session |
188201| GET | ` /api/psrcat/pulsars ` | All PSRCAT pulsars |
189202| GET | ` /api/psrcat/pulsar/{n} ` | Single pulsar by name |
190203| GET | ` /api/psrcat/stats ` | PSRCAT summary statistics |
@@ -218,12 +231,38 @@ git clone git://git.code.sf.net/p/psrchive/code psrchive
218231cd psrchive && ./bootstrap && ./configure && make && make install
219232```
220233
234+ ## PSRCHIVE Processing Workflow
235+
236+ The app now ships a session-based processing workflow:
237+
238+ - opening an archive creates a non-destructive backend processing session
239+ - the right-side ` Processing ` inspector drives ` paz ` , ` pam ` , ` pat ` , and ` pac `
240+ - chart previews always come from ` /api/sessions/{id}/preview/* `
241+ - ` Save Archive ` exports a new processed copy instead of mutating the source file
242+
243+ Implemented in v1:
244+
245+ - interactive channel zapping from the waterfall
246+ - live ` pam ` controls for ` dedisperse ` , ` tscrunch ` , ` fscrunch ` , ` bscrunch ` , and ` phase rotate `
247+ - ` pat ` TOA extraction with an observed/template/difference residual preview
248+ - calibration preview from an existing search path / ` database.txt ` / solution file
249+ - local workspace-scoped batch recipe save/load/run support
250+
251+ Current limitations:
252+
253+ - zapping is channel-only for now
254+ - TOA uses ` pat ` and visual residuals, not full ` tempo2 ` timing residuals yet
255+ - calibration does not build new databases from raw calibrator observations
256+ - batch processing is sequential foreground orchestration, not a background job queue
257+
221258## Developer Docs
222259
223260| Document | Description |
224261| ----------| -------------|
225262| [ docs/architecture.md] ( docs/architecture.md ) | System overview, data flow, state management |
226263| [ docs/api.md] ( docs/api.md ) | Full REST API reference with request/response schemas |
264+ | [ docs/processing-guide.md] ( docs/processing-guide.md ) | How to use the Processing Inspector, export flow, TOA, calibration, and batch recipes |
265+ | [ docs/psrchive-features.md] ( docs/psrchive-features.md ) | Implemented vs planned PSRCHIVE capabilities and runtime requirements |
227266| [ docs/data-flow.md] ( docs/data-flow.md ) | Local vs Docker runtime, archive-to-chart pipeline, and exact ` psrchive ` call path |
228267| [ docs/components.md] ( docs/components.md ) | React component props, behavior, and sub-components |
229268| [ docs/state.md] ( docs/state.md ) | All Jotai atoms — types, defaults, persistence |
@@ -242,11 +281,15 @@ cd psrchive && ./bootstrap && ./configure && make && make install
242281- [x] Multi-window support
243282- [x] Shared command menu across title bar, shortcuts, and macOS menu bar
244283- [x] Categorized settings center with updater and backend controls
245- - [ ] Interactive RFI zapping (click/box-select on waterfall)
246- - [ ] TOA extraction with visual residuals
247- - [ ] Polarization calibration wizard
248- - [ ] Real-time parameter adjustment (sliders for pam operations)
249- - [ ] Batch processing pipeline configuration
284+ - [x] Interactive RFI zapping (channel click / box-select on waterfall, v1)
285+ - [x] TOA extraction with visual residuals (v1 ` pat ` workflow)
286+ - [x] Polarization calibration wizard (v1 existing database / solution inputs)
287+ - [x] Real-time parameter adjustment (v1 ` pam ` controls)
288+ - [x] Batch processing pipeline configuration (v1 saved recipes + sequential execution)
289+ - [ ] Full ` tempo2 ` timing residual workflow
290+ - [ ] Automatic / subint / phase-bin RFI tooling
291+ - [ ] Calibration database builder from raw calibrator observations
292+ - [ ] Background batch queue with retry/history
250293
251294## References
252295
0 commit comments