@team-agent/installer 0.5.55 → 0.5.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Cargo.lock
CHANGED
package/Cargo.toml
CHANGED
|
@@ -771,7 +771,7 @@ fn requeue_after_claim_leader_skips_already_notified() {
|
|
|
771
771
|
// watchers, one already notified (notified_message_id set), one un-notified.
|
|
772
772
|
// requeue must return ONLY the un-notified watcher; the notified one is NOT
|
|
773
773
|
// requeued and its notified_message_id SURVIVES (clearing it would cause a
|
|
774
|
-
// second injection). Probed golden: requeued == [w_un] (result_id
|
|
774
|
+
// second injection). Probed golden: requeued == [w_un] (result_id present,
|
|
775
775
|
// prior_state "pending"); notified watcher keeps notified_message_id.
|
|
776
776
|
let ws = tmp_ws("requeue");
|
|
777
777
|
let store = store_for(&ws);
|
|
@@ -786,7 +786,7 @@ fn requeue_after_claim_leader_skips_already_notified() {
|
|
|
786
786
|
"t1",
|
|
787
787
|
"alice",
|
|
788
788
|
"pending",
|
|
789
|
-
|
|
789
|
+
Some("res_retryable"),
|
|
790
790
|
None,
|
|
791
791
|
);
|
|
792
792
|
let w_notified = seed_watcher(
|
|
@@ -3209,7 +3209,7 @@ fn gate054_rebind_replay_requeues_failed_leader_message_on_attach() {
|
|
|
3209
3209
|
}
|
|
3210
3210
|
|
|
3211
3211
|
#[test]
|
|
3212
|
-
fn
|
|
3212
|
+
fn claim_preserves_pending_acceptance_for_all_recipients() {
|
|
3213
3213
|
let ws = tmp_ws("claim-pending-acceptance");
|
|
3214
3214
|
let store = store_for(&ws);
|
|
3215
3215
|
let log = EventLog::new(&ws);
|
|
@@ -3263,7 +3263,14 @@ fn claim_requeues_pending_acceptance_for_leader_only() {
|
|
|
3263
3263
|
)
|
|
3264
3264
|
.unwrap()
|
|
3265
3265
|
};
|
|
3266
|
-
assert_eq!(
|
|
3266
|
+
assert_eq!(
|
|
3267
|
+
row(&leader_message),
|
|
3268
|
+
(
|
|
3269
|
+
"submitted_pending_acceptance".to_string(),
|
|
3270
|
+
None,
|
|
3271
|
+
None
|
|
3272
|
+
)
|
|
3273
|
+
);
|
|
3267
3274
|
assert_eq!(
|
|
3268
3275
|
row(&worker_message),
|
|
3269
3276
|
(
|
|
@@ -415,7 +415,7 @@ pub fn requeue_after_claim_leader(
|
|
|
415
415
|
let conn = crate::db::schema::open_db(store.db_path())?;
|
|
416
416
|
let mut stmt = conn.prepare(
|
|
417
417
|
"select watcher_id, result_id, status, coalesce(completed_at, created_at) from result_watchers
|
|
418
|
-
where owner_team_id = ?1 and notified_message_id is null
|
|
418
|
+
where owner_team_id = ?1 and result_id is not null and notified_message_id is null
|
|
419
419
|
order by created_at, watcher_id",
|
|
420
420
|
)?;
|
|
421
421
|
let rows = stmt.query_map(params![owner_team_id.as_str()], |row| {
|
|
@@ -474,9 +474,8 @@ pub fn requeue_after_claim_leader(
|
|
|
474
474
|
/// to `accepted` so `deliver_pending_messages` replays it through the SAME
|
|
475
475
|
/// pipeline. The `leader_notification_log` PK prevents a second notification
|
|
476
476
|
/// row for watcher-backed messages. A `submitted_pending_acceptance` row has
|
|
477
|
-
/// already crossed the transport boundary
|
|
478
|
-
///
|
|
479
|
-
/// can repeat the physical submit if a same-pane claim races the receipt window.
|
|
477
|
+
/// already crossed the transport boundary and is claim-immutable. Any future
|
|
478
|
+
/// retry belongs to a separate typed recovery arm, not attach/claim convergence.
|
|
480
479
|
pub(crate) fn requeue_blocked_leader_messages(
|
|
481
480
|
conn: &rusqlite::Connection,
|
|
482
481
|
event_log: &EventLog,
|
|
@@ -490,10 +489,9 @@ pub(crate) fn requeue_blocked_leader_messages(
|
|
|
490
489
|
// `deliver_pending_messages` picks them up as `accepted` and injects
|
|
491
490
|
// exactly once. status `queued_until_leader_attach` is deliberately NOT
|
|
492
491
|
// in the `claim_for_delivery` eligible set (see message_store.rs) so it
|
|
493
|
-
// could not have churned while the leader was unattached.
|
|
494
|
-
// `submitted_pending_acceptance`
|
|
495
|
-
//
|
|
496
|
-
// unobservable in-flight submit.
|
|
492
|
+
// could not have churned while the leader was unattached.
|
|
493
|
+
// `submitted_pending_acceptance` remains parked and claim-immutable; a
|
|
494
|
+
// future typed recovery arm must own any deliberate retry.
|
|
497
495
|
let requeued = conn.execute(
|
|
498
496
|
"update messages
|
|
499
497
|
set status = 'accepted',
|
|
@@ -504,7 +502,6 @@ pub(crate) fn requeue_blocked_leader_messages(
|
|
|
504
502
|
and (
|
|
505
503
|
(status = 'failed' and error = 'leader_not_attached')
|
|
506
504
|
or status = 'queued_until_leader_attach'
|
|
507
|
-
or status = 'submitted_pending_acceptance'
|
|
508
505
|
)",
|
|
509
506
|
params![owner_team_id.as_str(), chrono::Utc::now().to_rfc3339()],
|
|
510
507
|
)?;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@team-agent/installer",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.56",
|
|
4
4
|
"description": "npx installer for Team Agent",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codex",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"team-agent-installer": "npm/install.mjs"
|
|
21
21
|
},
|
|
22
22
|
"optionalDependencies": {
|
|
23
|
-
"@team-agent/cli-darwin-arm64": "0.5.
|
|
24
|
-
"@team-agent/cli-darwin-x64": "0.5.
|
|
25
|
-
"@team-agent/cli-linux-x64": "0.5.
|
|
23
|
+
"@team-agent/cli-darwin-arm64": "0.5.56",
|
|
24
|
+
"@team-agent/cli-darwin-x64": "0.5.56",
|
|
25
|
+
"@team-agent/cli-linux-x64": "0.5.56"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postinstall": "node npm/bincheck.mjs",
|