Skip to content

Fix single-host and cross-host connection stability - #8

Merged
dazer1234 merged 1 commit into
mainfrom
codex/host-stability-hotfix
Jul 22, 2026
Merged

Fix single-host and cross-host connection stability#8
dazer1234 merged 1 commit into
mainfrom
codex/host-stability-hotfix

Conversation

@dazer1234

Copy link
Copy Markdown
Owner

What changed

  • normalize remote snapshot timestamps to local receipt time
  • reset stale remote targets when only one host is configured
  • preserve and clearly mark unique offline iPhone tasks
  • route duplicate iPhone profiles through the healthy connection
  • prepare the focused v0.7.0.2 stability release

Why

Normal Mac/Windows clock skew could suppress valid live state, a removed relay could leave controls pointed at the other platform, and duplicate/offline iPhone profiles could appear healthy or intercept commands.

Validation

  • npm run check
  • npm test (133 passed, 1 expected Windows-only skip)
  • npm run validate
  • npm run audit:release
  • generic unsigned iOS build with Xcode Beta
  • 40/40 Swift tests on the physical iPhone
  • release ZIP integrity and SHA-256 verification

This PR does not include the in-development task timer or StandBy dashboard work. Codex was not restarted.

@dazer1234
dazer1234 merged commit 6d7d14b into main Jul 22, 2026
1 check passed
@dazer1234
dazer1234 deleted the codex/host-stability-hotfix branch July 22, 2026 02:13

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eea19dc75b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +153 to +155
let cachedOnly = MobileMerge.agents(
from: cached, acknowledgedCompletions: acknowledgedCompletionRevisions
).filter { !liveIdentities.contains(ThreadIdentity.canonical($0.threadKey)) }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Resolve aliases before splitting cached and live agents

When one node is offline with a cached client-new-thread key while the live node exposes the same task under its stable rollout ID, these separate MobileMerge.agents calls prevent temporaryThreadAliases from seeing both representations. The canonical-ID filter then treats them as different tasks, so the dashboard regresses to showing the cross-host task twice and may consume a slot with the stale offline alias. Merge the live and cached snapshots together for identity resolution before excluding cached duplicates.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant