Skip to content

Follow-up: deferred review findings from PR #771 #772

Description

@philcunliffe

Deferred, non-blocking findings from the review and triage of PR #771 (head 2d3ad70d2291420931efd9395a6007a70f228fa2). None of these blocks that PR; each is a follow-up a maintainer may schedule.

1. claude-desktop has no attach probe, so client_attach_missing never clears by observation

hypaware-core/plugins-workspace/claude-desktop/hypaware.plugin.json (the contributes.client block declares no attach probe) and src/core/daemon/status.js:896 (descriptor.attachProbe ? ... : { attached: false }).

With no probe, the collector reports the claude-desktop client unattached unconditionally, so the client_attach_missing warning at src/core/daemon/status.js:923:

This is pre-existing behaviour on master, not introduced by #771, and it is recorded in llp/0224-desktop-setup-second-pass.decision.md (#repair-surface, "One recorded limitation") with the fix already named: give the claude-desktop client a plist-reading attach probe so a finished setup quiets the warning by observation. This issue tracks that named follow-up.

2. Optional: a signedIn() predicate on AnthropicCredentialCapability

hypaware-core/plugins-workspace/claude-account/src/types.d.ts:9, suggested in review round 1 of PR #771. The consent screen's sign-in clause is now conditioned on static credential mode (hypaware-core/plugins-workspace/claude-desktop/src/install.js:180) because the only live probe (claude-account status via commands.run) prints its own diagnostics into the consent screen. A capability-level predicate would allow the crisper unconditional sentence back without the stdout leak. Widens a plugin contract; maintainer's call, purely optional polish.

3. Pre-existing, noted in passing during review

  • defaultOverwriteConfirmFactory EOF hang: src/core/cli/walkthrough.js:315 (rl.question never settles on a stdin that ends without a line). Pre-existing, unchanged by the default flip in Onboarding language and flow fixes from first user-onboarding feedback #771; the sibling gate in claude-desktop's consent.js was explicitly written to avoid this class.
  • runWizardSyncNow's catch returning reason: 'error' would swallow the hyp sync sentence; reachable only via a throwing confirm factory. Review judged a guard not worthwhile; recorded here so the judgment is findable.

Backlink: PR #771 review rounds one and two and the triage note carry full context.

Metadata

Metadata

Assignees

No one assigned

    Labels

    neutral:fixDelegate this issue to neutral for an autonomous fix attempt (reproduce -> fix -> PR)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions