Skip to content

Enter on another computer's chat while the sync service is down gives no visible answer #2574

Open

Description

@AbirAbbas

What happened

With the sync service unreachable, pressing Enter on Home on another computer's chat that has no local copy here gives no
visible answer. Home's foot already says the service is unreachable, and the keypress repeats that same line, so nothing
on screen changes. The person can't tell whether the keypress was seen.

Seen on a two-computer hand test (macOS arm64) of the idle hand-off branch (#2287). The code path is unchanged from
app/v3 a687c92: homeMachineEnter answers a down machine reading with a.home.say(a.machineRead.unavailableWord(), ""),
which is the line already shown.

nothing is answering at <sync service address> — if that is your own sync service, start it there with codeaf relay
<host> is unreachable; still trying

Replication

Deterministic (no model).

  1. make build, go build -o modelstub ./test/remote/stub, and a local sync service:
    bin/codeaf relay --listen <address> --store <empty folder>.
  2. Make two throwaway homes, A and B (HOME, CODEAF_HOME, CODEAF_PROFILE_DIR, CODEAF_SYNC_URL=<address>,
    CODEAF_BASE_URL=<stub address>/api/v1, OPENROUTER_API_KEY=stub). Pair them with codeaf pair --code /
    codeaf pair <code>.
  3. On B, start a chat and send one message, so A's Home lists it and A has no copy. Quit B.
  4. On A, open Home and stop the sync service.
  5. Select B's chat on A's Home and press Enter.
    • Today: nothing changes on screen.
    • Expected: a line that answers the keypress for that row, e.g. can't open <title> while the sync service is not answering; it opens when the service is back.

Where

  • The machineRead.down branch in homeMachineEnter (internal/tui3/homepanel_continue.go).
  • unavailableWord (internal/tui3/homepanel_machines.go).

The fix

When Home cannot act on a remote row because the service is out of reach, answer the keypress with a sentence that names
the row and says when it will work. The foot line stays as the standing status.

Acceptance

  • e2e: the tmux suite with two homes on a local sync service (stub model). Stop the service, press Enter on the
    remote row, and assert the row-specific sentence appears within 1 s.
  • e2e: the control. With the service up, the same Enter opens or continues the chat as today.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions