fortrangoingonforty/fgof-devloop / be0a9ee

Browse files

Document devloop process supervision

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
be0a9ee6da5a19c08a22e11a7a0000a3c2986a27
Parents
148536d
Tree
593145f

1 changed file

StatusFile+-
M README.md 19 4
README.mdmodified
@@ -20,7 +20,7 @@ Current v1 target:
20
 
20
 
21
 ## Status
21
 ## Status
22
 
22
 
23
-Sprint 02 is in place.
23
+Sprint 03 is in place.
24
 
24
 
25
 Tracked today:
25
 Tracked today:
26
 
26
 
@@ -32,7 +32,9 @@ Tracked today:
32
 - `fgof-watch` integration through shaped event summaries and trigger policy
32
 - `fgof-watch` integration through shaped event summaries and trigger policy
33
 - loop-owned restart filters for directory events and minimum change counts
33
 - loop-owned restart filters for directory events and minimum change counts
34
 - watch option projection for debounce polls, hidden-path ignores, and directory-event emission
34
 - watch option projection for debounce polls, hidden-path ignores, and directory-event emission
35
-- focused model and watch-bridge coverage in `fpm test`
35
+- `fgof-process` integration for one-shot build, run, and smoke command supervision
36
+- command results that retain full `process_result` output, exit, timeout, and error detail
37
+- focused model, watch-bridge, and process-supervision coverage in `fpm test`
36
 
38
 
37
 ## Public API Shape
39
 ## Public API Shape
38
 
40
 
@@ -48,6 +50,9 @@ Current public procedures:
48
 - `clear_devloop_cycle`
50
 - `clear_devloop_cycle`
49
 - `clear_devloop_decision`
51
 - `clear_devloop_decision`
50
 - `clear_devloop_watch_summary`
52
 - `clear_devloop_watch_summary`
53
+- `clear_devloop_command_spec`
54
+- `clear_devloop_command_result`
55
+- `clear_devloop_supervision_result`
51
 - `devloop_backend_name`
56
 - `devloop_backend_name`
52
 - `clear_devloop_state`
57
 - `clear_devloop_state`
53
 - `start_devloop`
58
 - `start_devloop`
@@ -60,6 +65,11 @@ Current public procedures:
60
 - `devloop_watch_failure_summary`
65
 - `devloop_watch_failure_summary`
61
 - `devloop_watch_options`
66
 - `devloop_watch_options`
62
 - `devloop_watch_trigger`
67
 - `devloop_watch_trigger`
68
+- `devloop_build_command`
69
+- `devloop_run_command`
70
+- `devloop_smoke_command`
71
+- `run_devloop_command`
72
+- `run_devloop_cycle`
63
 - `begin_devloop_cycle`
73
 - `begin_devloop_cycle`
64
 - `finish_devloop_cycle`
74
 - `finish_devloop_cycle`
65
 
75
 
@@ -70,19 +80,24 @@ Current semantics:
70
 - `devloop_watch_summary` condenses `fgof-watch` event batches into file, directory, create, modify, remove, move, ignored, and failure counters
80
 - `devloop_watch_summary` condenses `fgof-watch` event batches into file, directory, create, modify, remove, move, ignored, and failure counters
71
 - `devloop_watch_options()` projects dev-loop policy into `fgof-watch` options for debounce polls, hidden-path filtering, and directory event emission
81
 - `devloop_watch_options()` projects dev-loop policy into `fgof-watch` options for debounce polls, hidden-path filtering, and directory event emission
72
 - `devloop_watch_trigger()` turns successful watch summaries into change triggers while suppressing watcher failures, empty batches, directory-only batches when disabled, and batches below `min_restart_changes`
82
 - `devloop_watch_trigger()` turns successful watch summaries into change triggers while suppressing watcher failures, empty batches, directory-only batches when disabled, and batches below `min_restart_changes`
83
+- `devloop_build_command()`, `devloop_run_command()`, and `devloop_smoke_command()` wrap `fgof-process` commands with loop roles and optional process options
84
+- `run_devloop_command()` executes one command spec and preserves the raw `process_result`, including stdout, stderr, exit code, timeout state, and process error details
85
+- `run_devloop_cycle()` starts a cycle, executes enabled build/run/smoke specs in order, skips later specs after the first failure, and feeds the outcome into `finish_devloop_cycle()`
73
 - `begin_devloop_cycle()` increments the cycle counter and starts work only when the loop is active, idle, and policy permits the trigger
86
 - `begin_devloop_cycle()` increments the cycle counter and starts work only when the loop is active, idle, and policy permits the trigger
74
 - `finish_devloop_cycle()` records success or failure and returns an explicit decision to idle, restart, or stop
87
 - `finish_devloop_cycle()` records success or failure and returns an explicit decision to idle, restart, or stop
75
 - negative `max_failures` values normalize to unlimited failures
88
 - negative `max_failures` values normalize to unlimited failures
76
 - negative `debounce_polls` values normalize to no debounce
89
 - negative `debounce_polls` values normalize to no debounce
77
-- Sprint 02 is intentionally process-free so later process and job integration can build on deterministic state transitions
90
+- Sprint 03 is intentionally one-shot and synchronous; long-running process groups and cleanup orchestration belong to the later jobs layer
78
 
91
 
79
 ## Dependency
92
 ## Dependency
80
 
93
 
81
 `fgof-devloop` depends on `fgof-watch` `v0.1.0` for watch-event types and
94
 `fgof-devloop` depends on `fgof-watch` `v0.1.0` for watch-event types and
82
-watch option projection:
95
+watch option projection, and `fgof-process` `v0.1.0` for one-shot process
96
+execution:
83
 
97
 
84
 ```toml
98
 ```toml
85
 [dependencies]
99
 [dependencies]
100
+fgof-process = { git = "https://github.com/FortranGoingOnForty/fgof-process.git", tag = "v0.1.0" }
86
 fgof-watch = { git = "https://github.com/FortranGoingOnForty/fgof-watch.git", tag = "v0.1.0" }
101
 fgof-watch = { git = "https://github.com/FortranGoingOnForty/fgof-watch.git", tag = "v0.1.0" }
87
 ```
102
 ```
88
 
103