ae66b3d2fb 
							
						 
					 
					
						
						
							
							message: rename NewMsg to New  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m13s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m15s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m14s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 5m7s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m37s 
				
			 
		
		
	 
 
	 
						
						Should have done this when relocating this from container. Now is a good time to rename it before v0.3.x.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-03 01:49:27 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							7c3c3135d8 
							
						 
					 
					
						
						
							
							internal/outcome: track state in TMPDIR  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m14s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m7s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m3s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m10s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m56s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						The SharePath is a more stable path than RunDirPath, since it is available all the time and should remain consistent. This also fits better into the intended use case of XDG_RUNTIME_DIR.
Closes  #17 .
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 12:40:58 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							f33aea9ff9 
							
						 
					 
					
						
						
							
							internal/env: cleaner runtime dir fallback  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m16s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m10s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m1s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m14s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m57s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m28s 
				
			 
		
		
	 
 
	 
						
						This now places rundir inside the fallback runtime dir, so special case in internal/outcome is avoided.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 12:22:32 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e7fc311d0b 
							
						 
					 
					
						
						
							
							internal/outcome/shim: cover reparent and exit request paths  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 26s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 42s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 39s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 39s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 43s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 41s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m31s 
				
			 
		
		
	 
 
	 
						
						These test cases were missed when making the changes.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 11:58:09 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							f5274067f6 
							
						 
					 
					
						
						
							
							internal/outcome/process: nil-safe unlock when failing to lock  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m13s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m10s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m57s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m26s 
				
			 
		
		
	 
 
	 
						
						This also prints a debug message which might be useful.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 11:47:51 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e7161f8e61 
							
						 
					 
					
						
						
							
							internal/outcome: measure finalise time  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m16s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m11s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m8s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m19s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m4s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m56s 
				
			 
		
		
	 
 
	 
						
						This also increases precision of state time output.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 05:17:33 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							6931ad95c3 
							
						 
					 
					
						
						
							
							internal/outcome/shim: EOF as exit request fallback  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 55s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 53s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 53s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 1m1s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 1m3s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m34s 
				
			 
		
		
	 
 
	 
						
						In some cases the signal might be delivered before the signal handler is installed, and synchronising against such a case is too expensive. Instead, use the pipe being closed as a fallback to the regular exit request. This change also moves installation of the signal handler early.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 04:41:26 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							2ba599b399 
							
						 
					 
					
						
						
							
							internal/outcome/process: use new store interface  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 42s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m26s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m20s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m15s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m32s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 5m5s 
				
			 
		
		
	 
 
	 
						
						This change also spawns shim before committing system state, leaving it blocking on the setup pipe. The internal/outcome/process structure is also entirely reworked to be much more readable and less error-prone, while enabling basic performance measurements. A long-standing bug where segment lock is not held during Commit is also resolved.
Closes  #19 .
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-02 04:25:45 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							d3d3417125 
							
						 
					 
					
						
						
							
							internal/outcome/process: relocate start and serve  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m14s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m11s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m2s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m5s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m30s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m57s 
				
			 
		
		
	 
 
	 
						
						This is useful for reordering these operations for further cleanup.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-11-01 19:14:59 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							651cdf9ccb 
							
						 
					 
					
						
						
							
							internal/outcome: remove guard on main  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m20s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m7s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m8s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m9s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m54s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						This is no longer exported. Such a check is pointless.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-31 22:58:26 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							68ff0a2ba6 
							
						 
					 
					
						
						
							
							container/params: expose pipe  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Hpkg (push) Successful in 4m11s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m13s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 5m3s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m30s 
				
			 
		
			
				
	 
				Test / Create distribution (push) Successful in 36s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m16s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m16s 
				
			 
		
		
	 
 
	 
						
						This increases flexibility of how caller wants to handle the I/O. Also makes it no longer rely on finalizer.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-31 22:39:02 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							b25ade5f3d 
							
						 
					 
					
						
						
							
							internal/store: rename compat interface  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m17s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m3s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m4s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m25s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m54s 
				
			 
		
		
	 
 
	 
						
						The new store implementation will be exported as Store.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-30 18:53:59 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							ebdcff1049 
							
						 
					 
					
						
						
							
							internal/store: rename from state  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m8s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m2s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m55s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m25s 
				
			 
		
		
	 
 
	 
						
						This reduces collision with local variable names, and generally makes sense for the new store package, since it no longer specifies the state struct.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-30 18:43:55 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							46c5ce4936 
							
						 
					 
					
						
						
							
							internal/outcome/shim: check full behaviour  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 24s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 42s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 38s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 42s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 38s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 39s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m21s 
				
			 
		
		
	 
 
	 
						
						This took significant effort to stub out, and achieves full coverage after c5aefe5e9d.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-30 05:20:49 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							36f8064905 
							
						 
					 
					
						
						
							
							internal/outcome/process: output via msg  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m13s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 3m57s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m8s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m54s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m27s 
				
			 
		
		
	 
 
	 
						
						This makes it possible to instrument output behaviour through stub.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-30 03:41:38 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							eeb9f98e5b 
							
						 
					 
					
						
						
							
							internal/outcome/shim: move signal constants  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 36s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m17s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m11s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m16s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 5m1s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						The magic numbers hurt readability.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-30 01:20:51 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							3f9f331501 
							
						 
					 
					
						
						
							
							internal/outcome/shim: remove noop resume  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m54s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m27s 
				
			 
		
			
				
	 
				Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m11s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 3m59s 
				
			 
		
		
	 
 
	 
						
						The shim does not suspend output to begin with. These are leftovers from when container startup code suspends output.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-29 23:31:39 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							2563391086 
							
						 
					 
					
						
						
							
							internal/outcome/shim: params check early  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m16s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m18s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m0s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m56s 
				
			 
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m11s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						This is unreachable, but keeping it here as a failsafe until more test cases are added.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-29 23:10:12 +09:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							a0b4e47acc 
							
						 
					 
					
						
						
							
							internal/outcome: rename from app  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				Test / Sandbox (race detector) (push) Successful in 4m7s 
				
			 
		
			
				
	 
				Test / Hakurei (race detector) (push) Successful in 4m55s 
				
			 
		
			
				
	 
				Test / Flake checks (push) Successful in 1m27s 
				
			 
		
			
				
	 
				Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	 
				Test / Sandbox (push) Successful in 2m11s 
				
			 
		
			
				
	 
				Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	 
				Test / Hpkg (push) Successful in 4m1s 
				
			 
		
		
	 
 
	 
						
						This is less ambiguous, and more accurately describes the purpose of the package.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-29 04:33:13 +09:00