Request for system prompt / complete context in `preRequest` hook
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- clojure
調査の方向性
The issue does not name relevant files or tests. Start by tracing how preRequest hooks are invoked and what context is available to them; then assess how conversation or injected-context data could be exposed safely. Done means the hook can inspect context that the model will receive, including changes caused by compaction, without relying on external state.
索引モデルが issue の本文から書いたものです。
説明
To upvote this issue, give it a thumbs up. See this list for the most upvoted issues.
I've been building a persistent memory system that hooks into ECA via chatStart + preRequest to inject recalled memories into the prompt. It works well, but I've run into a limitation with the preRequest hook that makes deduplication harder than it needs to be.
Each preRequest invocation is a fresh process - it only gets { hook_type, prompt }. I want to avoid re-injecting memories the agent has already seen, but I have no way to know what's currently in the conversation context. Right now I'm working around this with a statefile that tracks what I've surfaced, but it's blind to context compaction; if ECA truncates older context, those memories should be re-surfaced, but my statefile still thinks they're present.
The opencode plugin doesn't have this problem because its hook receives the full system prompt state, so it can scan for what's already there.
What would help: If the preRequest payload included the current conversation messages (or at least the system prompt / injected context entries), the hook could inspect what's actually present and make smarter decisions. Something like:
{
"hook_type": "preRequest",
"prompt": "...",
"messages": [
{ "role": "system", "content": "..." },
{ "role": "user", "content": "..." },
{ "role": "assistant", "content": "..." }
]
}
Even a lighter version would work, just the system/injected context entries, not the full message history. The key thing is being able to see what the model will actually receive, so hooks can avoid redundancy and respond to compaction. Any hook that wants to inject contextual information (RAG, memory, project state, etc.) benefits from knowing what's already in the context. Without it, you either accept duplicates (wasting tokens) or maintain fragile external state that can't account for compaction.
- 主要言語
- Clojure
- スター
- 1k
- フォーク
- 82
- 平均マージ
- 3日 39分
- マージ済み PR(30日)
- 15
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
editor-code-assistant/eca のほかの issue
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
editor-code-assistant/eca#655 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
editor-code-assistant/eca#652 ·
メンテナーはふだん 2 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
editor-code-assistant/eca#648 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
editor-code-assistant/eca#644 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Add the ability to see what changed in the system prompt対応中かも @zikajk が 10 日前に担当しました。 オープンenhancement
editor-code-assistant/eca#642 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
editor-code-assistant/eca の issue をすべて見る
似ている issue
-
Usage analytics `v_tables` ignores table metadata set by users (`metabase_table_user_settings`)オープン.Needs Triage .Team/Graphy Priority:P3 Type:Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
metabase/metabase#84762 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
NoahTheDuke/splint#57 · コメント 1 件 ·
-
category:runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
jank-lang/jank#1110 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
IOP MCP
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
calcit-lang/calcit#2133 ·
メンテナーはふだん 1 日以内に返信