Статус реализации подсказок (Prompt Suggestion)
Отслеживает статус реализации функции prompt suggestion (NES) во всех пакетах.
Основной модуль (packages/core/src/followup/)
| Компонент | Статус | Строки | Описание |
|---|---|---|---|
followupState.ts | ✅ Готово | ~230 | Фреймворк-независимый контроллер с таймером/debounce |
suggestionGenerator.ts | ✅ Готово | ~260 | Генерация LLM + 12 правил фильтрации + поддержка разветвлённых запросов |
forkedQuery.ts | ✅ Готово | ~240 | CacheSafeParams + createForkedChat + runForkedQuery |
overlayFs.ts | ✅ Готово | ~140 | Copy-on-write оверлейная файловая система |
speculationToolGate.ts | ✅ Готово | ~150 | Контроль границ инструментов с AST-парсером shell |
speculation.ts | ✅ Готово | ~540 | Движок спекуляции с конвейерной подсказкой + переопределение модели |
Интеграция CLI (packages/cli/)
| Компонент | Статус | Описание |
|---|---|---|
AppContainer.tsx | ✅ Готово | Генерация подсказок, жизненный цикл спекуляции, рендеринг UI |
InputPrompt.tsx | ✅ Готово | Принятие по Tab/Enter/Right Arrow, отклонение + прерывание |
Composer.tsx | ✅ Готово | Проброс пропсов |
UIStateContext.tsx | ✅ Готово | promptSuggestion + dismissPromptSuggestion |
useFollowupSuggestions.tsx | ✅ Готово | React-хук с телеметрией + отслеживание нажатий клавиш |
settingsSchema.ts | ✅ Готово | 3 фиче-флага + настройка fastModel |
settings.schema.json | ✅ Готово | Схема настроек VSCode |
Интеграция WebUI (packages/webui/)
| Компонент | Статус | Описание |
|---|---|---|
InputForm.tsx | ✅ Готово | Tab/Enter/Right Arrow + отправка explicitText |
useFollowupSuggestions.ts | ✅ Готово | React-хук с поддержкой onOutcome |
followup.ts | ✅ Готово | Запись подпути |
components.css | ✅ Готово | Стилизация призрачного текста |
vite.config.followup.ts | ✅ Готово | Отдельная конфигурация сборки |
Телеметрия (packages/core/src/telemetry/)
| Компонент | Статус | Описание |
|---|---|---|
PromptSuggestionEvent | ✅ Готово | 10 полей |
SpeculationEvent | ✅ Готово | 7 полей |
logPromptSuggestion() | ✅ Готово | Логгер OpenTelemetry |
logSpeculation() | ✅ Готово | Логгер OpenTelemetry |
Тестовое покрытие
| Файл теста | Тесты | Описание |
|---|---|---|
followupState.test.ts | 14 | Таймер контроллера, debounce, колбэк accept, onOutcome, очистка |
suggestionGenerator.test.ts | 16 | Все 12 правил фильтрации + граничные случаи + ложные срабатывания |
overlayFs.test.ts | 15 | Запись COW, разрешение чтения, применение, очистка, обход путей |
speculationToolGate.test.ts | 27 | Категории инструментов, режим одобрения, AST shell, перезапись путей |
forkedQuery.test.ts | 6 | Сохранение/получение/очистка кэш-параметров, глубокое клонирование, определение версии |
speculation.test.ts | 7 | Граничные случаи ensureToolResultPairing |
smoke.test.ts | 21 | Кросс-модульный E2E: фильтр + оверлей + toolGate + кэш + связывание |
InputPrompt.test.tsx | 4 | Tab, Enter+отправка, Right Arrow, защита завершения |
История аудитов
| Раунд | Найдено проблем | Исправлено проблем |
|---|---|---|
| R1-R4 | 10 | 10 |
| R5-R6 | 2 | 2 |
| R7-R8 | 3 | 3 |
| R9 | 0 | — |
| R10-R11 | 1 | 1 |
| R12-R13 | 1 | 1 |
| Phase 1+2 R1-R4 | 20+ | 20+ |
| Итого | 37+ | 37+ |
Совместимость с Claude Code
| Функция | Совместимость | Примечания |
|---|---|---|
| Текст подсказки | 100% | Идентично (только название бренда) |
| 12 правил фильтрации | 100%+ | Улучшение границ слов \b |
| Взаимодействие UI (Tab/Enter/Right) | 100% | |
| Условия-ограждения | 100% | 13 проверок |
| Телеметрия | 100% | 10+7 полей |
| Совместное использование кэша | ✅ | DashScope cache_control |
| Спекуляция | ✅ | COW оверлей + шлюзование инструментов |
| Конвейерная подсказка | ✅ | Генерируется после завершения спекуляции |
| Управление состоянием | 100%+ | Паттерн контроллера, Object.freeze |
Last updated on