Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
cc5b6a1
feat(desktop): merge agent edit surface into a single dialog
Aug 12, 2026
3139d1a
feat(desktop): restore definition-context tuning and API-key fields t…
Aug 13, 2026
376a7f8
fix(desktop): make merged D-section provider/model, inheritance, and …
Aug 13, 2026
0594b2b
fix(desktop): suppress dialog open-autofocus for deep-link focus targets
Aug 17, 2026
aff889b
test(desktop): drive merged edit dialog in access-tightening e2e
Aug 18, 2026
b5465b0
feat(desktop): port effort picker into merged agent edit dialog
Aug 18, 2026
83c73b3
fix(desktop): land deep-link focus on model and env-key targets
Aug 18, 2026
43aa339
test(desktop): cover deep-link focus retry and env-key expansion
Aug 18, 2026
95bd78d
fix(desktop): stabilize env-key deep-link focus against required-key …
Aug 19, 2026
fe0d526
test(desktop): assert deep-link focus lands at the mounted dialog bou…
Aug 19, 2026
7c71ae5
fix(agents): contain refetch rejection in save coordinator
Aug 27, 2026
f361a4e
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 27, 2026
167f6db
fix(agents): surface refetch failures and guard concurrent definition…
Aug 27, 2026
96ccaa8
fix(agents): rebind edit ctx to latest persona so drift guard fires
Aug 27, 2026
b2a4d8c
test(agents): pin persona edit ctx rebind at the hook seam
Aug 27, 2026
08a2944
fix(desktop): keep Relay Mesh runtime switch on the shown layer and n…
Aug 28, 2026
bbd7854
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 28, 2026
e2e0fe6
fix(desktop): name the publish notice from the observed persona
Aug 28, 2026
fdd41e5
fix(desktop): guard concurrent definition edits with an authoritative…
Aug 28, 2026
0b18b2b
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 28, 2026
9b01300
fix(desktop): close persona edit TOCTOU with a lock-held compare-and-…
Aug 28, 2026
eead8e2
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 28, 2026
41066ea
fix(desktop): pin CAS wiring with command-path regression and tighten…
Aug 28, 2026
a49d25a
test(desktop): add lock-scope assertion for CAS atomicity regression
Aug 28, 2026
696222f
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 28, 2026
ceada06
fix(agents): address Carl round-5 review findings (P1-1, P1-2, P2)
Aug 29, 2026
4aaf2c6
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Aug 29, 2026
ce3eb76
fix(agents): add return type annotation on retain closure; trim canSu…
Aug 29, 2026
c9fa216
fix(agents): wire publish-only retry seam and remove pooled-instance …
Aug 29, 2026
2717477
refactor(agents): remove now-dead hasNamePool declaration in agentFor…
Aug 29, 2026
d7b3b99
fix(agents): address Thufir pass-3 review findings (IMPORTANT 1, 2, 3)
Aug 29, 2026
4f681cd
fix(agents): fix clippy cloned_ref_to_slice_refs in pending/tests.rs
Aug 29, 2026
8a795d1
fix(agents): fix pre-share pending_sync assertion in retry regression…
Aug 29, 2026
05993fb
fix(personas): honest terminal copy and command-path team-refresh reg…
Aug 29, 2026
dbc2418
fix(personas): replace clone with slice::from_ref in team-refresh test
Aug 29, 2026
cdf52df
fix(personas): dual-store loader, post-fold regression, outcome logging
Aug 30, 2026
46053a7
fix(teams): move retry-refresh regression to sub-module under file-si…
Aug 30, 2026
5bdd313
fix(personas): address Carl/Wes review — publication recovery, refres…
Sep 1, 2026
25f4a55
chore: merge origin/main (59328d5ae) into duncan/phase1-merged-agent-…
Sep 1, 2026
9d23c19
fix(personas): add description + expectedUpdatedAt fields missing aft…
Sep 1, 2026
5a3e9d3
fix(personas): extract RefreshLockObserver type alias to satisfy clip…
Sep 1, 2026
b946f65
fix(personas): serialize HOME-mutating tests to eliminate race condition
Sep 1, 2026
e8f2168
chore: merge origin/main (114dbf745) into duncan/phase1-merged-agent-…
Sep 1, 2026
08467d5
chore: merge origin/main (bd7349041) into duncan/phase1-merged-agent-…
Sep 1, 2026
a75d373
fix(personas): address Thufir pass-1 findings — P2 boundary, P1-2 rac…
Sep 1, 2026
6404643
fix(personas): update egress guard inventory for new /events counter-…
Sep 1, 2026
3697c8d
fix(agents): rebuild P1/P2 regressions and wire description field
Sep 1, 2026
92c8b76
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Sep 1, 2026
d739ba7
test(agents): replace behavioral-race oracle and add P2 persistence a…
Sep 1, 2026
133086c
fix(personas): add description to observedStateMatchesPersonaInput se…
Sep 2, 2026
08d1193
Merge remote-tracking branch 'origin/main' into duncan/phase1-merged-…
Sep 2, 2026
a950da2
fix(agents): wire controlled effort state through AgentEditMergedDialog
Sep 2, 2026
d63ed1e
fix(agents): address effort settlement, pin→inherit suppression, and …
Sep 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions desktop/src-tauri/src/commands/agents_pending.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ use crate::{app_state::AppState, managed_agents::ManagedAgentRecord};
/// only runtime fields produces an identical row and never re-enqueues a
/// publish. Best-effort: a failure here is logged and swallowed so a retention
/// hiccup never blocks the disk-authoritative write.
pub(crate) fn retain_managed_agent_pending(
app: &AppHandle,
pub(crate) fn retain_managed_agent_pending<R: tauri::Runtime>(
app: &tauri::AppHandle<R>,
state: &AppState,
record: &ManagedAgentRecord,
) {
Expand Down
4 changes: 4 additions & 0 deletions desktop/src-tauri/src/commands/personas/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ pub(super) use pending::tombstone_persona_pending;
mod create;
pub use create::create_persona;
mod sharing;
#[cfg(test)]
pub(crate) use pending::{prepare_persona_publication_at, PreparedPersonaPublication};
#[cfg(test)]
pub(crate) use sharing::publish_and_refresh_teams_at;
pub use sharing::set_persona_shared;
pub use sharing::update_persona_and_publish;
mod update;
Expand Down
12 changes: 6 additions & 6 deletions desktop/src-tauri/src/commands/personas/pending.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use crate::managed_agents::{
AgentDefinition,
};

pub(super) struct PreparedPersonaPublication {
pub(crate) struct PreparedPersonaPublication {
pub scope: RetentionScope,
pub event: nostr::Event,
pub retained: RetainedEvent,
Expand Down Expand Up @@ -64,8 +64,8 @@ pub(in crate::commands) fn retain_persona_pending_at(
/// exact share tag. The explicit share toggle passes `Some(shared)`. Returning
/// the retained event lets that command immediately await relay acceptance
/// without rebuilding or re-signing a different NIP-33 head.
pub(super) fn prepare_persona_publication(
app: &AppHandle,
pub(super) fn prepare_persona_publication<R: tauri::Runtime>(
app: &AppHandle<R>,
state: &AppState,
persona: &AgentDefinition,
shared_override: Option<bool>,
Expand Down Expand Up @@ -104,8 +104,8 @@ fn retained_persona_is_shared(row: Option<&RetainedEvent>) -> bool {
/// never present an unshared persona as published. The durable share state
/// lives in the retention head, so nothing is lost: the true value reappears
/// once the identity is signable again.
pub(super) fn project_active_persona_sharing(
app: &AppHandle,
pub(super) fn project_active_persona_sharing<R: tauri::Runtime>(
app: &tauri::AppHandle<R>,
state: &AppState,
personas: &mut [AgentDefinition],
) {
Expand Down Expand Up @@ -156,7 +156,7 @@ fn project_persona_sharing_at(
Ok(())
}

pub(super) fn prepare_persona_publication_at(
pub(crate) fn prepare_persona_publication_at(
db_path: &std::path::Path,
keys: &nostr::Keys,
persona: &AgentDefinition,
Expand Down
Loading
Loading