hyp session ignore saves nothing on a poll-source-only install: the idle gateway binds no port and the database-only fallback does not apply

オープン
#2,860 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
javascript, postgresql, sqlite
領域
backend, cli, databases

調査の方向性

Start in copilot/src/session.js, where the DATABASE_ONLY map and the session ignore, unignore and status commands live, and read the LLP 0549 #session-controls fallback rule it implements. Reproduce with a sandbox install whose only recorders are poll sources, then run hyp session ignore on a known id. Done when the commands fall back to the durable SessionIgnoreSet when the gateway has no upstreams and no recorder advertises the control route, a test covers that case, and listening recorders still fail closed with UNKNOWN.

索引モデルが issue の本文から書いたものです。

説明

Problem

hyp session ignore <id> saves nothing on an install whose only recorders read a native database by polling (Goose, Antigravity), and it exits 3 (status unknown).

These sources register no client of their own, or no database-only client, so the ai-gateway session command handles the request. On such an install hyp setup configures @hypaware/ai-gateway with upstreams: []. The gateway is started but idle and binds no port, so the command finds no recorder to reach:

$ hyp session ignore 20261103_3
hyp session: gateway at http://127.0.0.1:18621: could not reach the HypAware gateway ... ECONNREFUSED
exit 3
$ hyp session status 20261103_3
UNKNOWN, exit 3

With listen unpinned, the command fails earlier with "could not resolve the HypAware gateway endpoint", and the exit code is the same.

The poll sources already read the durable SessionIgnoreSet the gateway would have written. The only thing missing is a way for the CLI to write that set.

LLP 0549 #session-controls falls back to the store directly only when "every registered client is a database-only recorder ... and no gateway capability is active". An idle gateway still counts as active, and Goose and Antigravity are not in the DATABASE_ONLY map in copilot/src/session.js.

Found

T9 Linux run of the Goose integration (PR #2859), in a sandbox install with the Goose source only. Artifact: the 27-ignore.txt receipt in the mission folder. #2859 changes the Goose docs and LLP 0570 #privacy to say this, and points users at hyp privacy ignore <working dir>. The T9 sandbox checked that this works: after it, the session's rows were removed on the next import.

Expected

On an install where no recorder is listening and the gateway has no upstreams, hyp session ignore, unignore and status with an explicit native id write and read the durable store. They should give the same persisted_set_membership receipt that the Copilot/NanoClaw path gives.

Done when

  • The session commands fall back to the durable store when the live snapshot shows the gateway idle (no upstreams) and no other recorder advertises the control route. A test covers that case.
  • Any recorder that is listening keeps today's fail-closed UNKNOWN when it cannot be reached.
  • The Goose and Antigravity docs drop the workaround note.
主要言語
JavaScript
スター
11
フォーク
0
平均マージ
2時間 25分
マージ済み PR(30日)
311

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

hyparam/hypaware のほかの issue

hyparam/hypaware の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。