Skip to repository content88 lines · 3.5 KB · rust
tenant.openagents/omega
No repository description is available.
OpenAgents Git authority 2026-07-28T05:16:05.163Z Public web read
NIP-34 coordinate
30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omegaMaintainersHidden in public view
References2 branches · 1 tag
Read-only clone
git clone https://openagents.com/git/tenant.openagents/omega.gitBrowse files
full_auto_ui.rs
1//! Omega GPUI Full Auto launcher and concurrent run monitor (`OMEGA-FA-03`).
2//!
3//! Full Auto is a dedicated run surface. It is never a composer toggle.
4//! Durable mutation goes only through supervised `omega_effectd`.
5
6mod dispatch;
7mod draft;
8mod evidence_chain;
9mod issue31_adjunct;
10mod issue31_delivery;
11mod issue31_observation;
12mod panel;
13mod provider_roster;
14mod thread_run_link;
15
16pub use dispatch::{DispatchRefusal, FullAutoDispatch};
17pub use draft::{
18 validate_launcher_draft, FullAutoLauncherDraft, LauncherValidation, DEFAULT_DONE_CONDITION,
19 DEFAULT_TURN_CAP, FULL_AUTO_ACTIVE_LIMIT, FULL_AUTO_WORKSPACE_REF,
20};
21pub use evidence_chain::FullAutoEvidenceView;
22pub use issue31_adjunct::{
23 publish_issue31_host_snapshot, Issue31HostIdentitySource, Issue31HostProjectionError,
24 Issue31HostPublication,
25 project_issue31_full_auto_adjunct, Issue31FullAutoLiveSources, Issue31FullAutoProjectionError,
26};
27pub use issue31_delivery::{
28 issue31_host_projection_documents, issue31_host_projection_source,
29 issue31_provider_roster_source,
30 latest_issue31_live_reading, set_issue31_live_reading, Issue31FullAutoReading,
31};
32pub use issue31_observation::{
33 observe_issue31_full_auto, Issue31ObservationError, MAX_ISSUE31_PROJECTED_RUNS,
34};
35pub use panel::FullAutoPanel;
36pub use provider_roster::{parse_provider_accounts, ProviderAccountRow};
37pub use thread_run_link::{
38 project_thread_run_link, ThreadRunLink, ThreadRunRecords, THREAD_RUN_LINK_MAX_AGE_MS,
39};
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44
45 #[test]
46 fn launcher_requires_objective_and_rejects_blank_mission() {
47 let mut draft = FullAutoLauncherDraft::default();
48 assert!(!validate_launcher_draft(&draft).ok);
49 draft.objective = "Ship the Omega Full Auto launcher.".into();
50 draft.done_condition = DEFAULT_DONE_CONDITION.into();
51 assert!(validate_launcher_draft(&draft).ok);
52 }
53
54 /// Product law, restated for `OMEGA-DELTA-0020`.
55 ///
56 /// The owner asked for Full Auto to be folded into the Omega chat UI, so
57 /// "dedicated panel" is no longer the right half of this law. The half
58 /// that survives is the one with teeth: Full Auto authority is a dedicated
59 /// *entry*, never a flag on a chat draft. A flag is a boolean the send
60 /// path reads, so anything that can set it can start a run — a slash
61 /// command, a restored draft, a model-authored composer insertion. Owner
62 /// gate 8 forbids exactly that.
63 ///
64 /// The earlier version of this test asserted `module_path!()` contains
65 /// `full_auto_ui`, which is true of any test in this crate and therefore
66 /// checked nothing. It is replaced with a check that can fail: the draft
67 /// carries no field the send path could read as "run this automatically".
68 #[test]
69 fn full_auto_is_not_a_composer_mode_flag() {
70 let draft = format!("{:?}", FullAutoLauncherDraft::default());
71 for flag in [
72 "full_auto: ",
73 "auto: true",
74 "autonomous",
75 "composer_mode",
76 "send_starts_run",
77 ] {
78 assert!(
79 !draft.contains(flag),
80 "FullAutoLauncherDraft grew {flag:?}: {draft}. Full Auto is \
81 reached by a dedicated entry and started by a dedicated \
82 button, never by a flag a send path reads."
83 );
84 }
85 assert_eq!(FULL_AUTO_ACTIVE_LIMIT, 8);
86 }
87}
88