Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 6, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

markijbema and others added 30 commits January 5, 2026 10:26
Track when a suggestion is shown to the user for the first time.
This helps count only the requests that were actually displayed to users.

- Add AUTOCOMPLETE_UNIQUE_SUGGESTION_SHOWN to TelemetryEventName enum
- Add captureUniqueSuggestionShown method to AutocompleteTelemetry
- Track shown suggestions using a Set with text+prefix+suffix as key
- Integrate tracking in GhostInlineCompletionProvider for both cache hits and LLM responses
- Add comprehensive tests for the new telemetry event
- Add shownToUser flag to FillInAtCursorSuggestion
- Update findMatchingSuggestion to return isFirstTimeShown flag
- Simplify AutocompleteTelemetry.captureUniqueSuggestionShown signature
- Remove ID generation and Set tracking logic
- Update tests to match new implementation
Only count suggestions as 'unique shown' if they were visible for at least
300ms, filtering out suggestions that flash briefly when typing quickly.

- Add firstShownAt and uniqueTelemetryFired fields to FillInAtCursorSuggestion
- Add MIN_VISIBILITY_DURATION_MS constant (300ms)
- Add updateVisibilityTracking() helper function
- Add shouldFireUniqueTelemetry flag to MatchingSuggestionWithFirstTimeFlag
- Add comprehensive tests for visibility duration tracking
…metry

The previous implementation relied on subsequent calls to findMatchingSuggestion
to check if 300ms had elapsed since the suggestion was first shown. This approach
was flawed because there's no guarantee the function would be called again - if
the user just stares at the suggestion without typing, no telemetry would fire.

This fix implements proper timeout-based tracking:
1. When a suggestion is shown, start a 300ms timer
2. After 300ms, check if the same suggestion is still being displayed
3. If yes, fire AUTOCOMPLETE_UNIQUE_SUGGESTION_SHOWN telemetry
4. If no (different suggestion or dismissed), don't fire

Changes:
- Added VisibilityTrackingState interface to track current suggestion
- Added startVisibilityTracking() and cancelVisibilityTracking() methods
- Modified findMatchingSuggestion to return suggestionKey instead of shouldFireUniqueTelemetry
- Removed firstShownAt and uniqueTelemetryFired from FillInAtCursorSuggestion type
- Updated tests to reflect the new implementation
The isFirstTimeShown flag and shownToUser property were computed but never
actually consumed by any code. The visibility-based telemetry system uses
suggestionKey and firedUniqueTelemetryKeys Set for deduplication instead.

Removed:
- isFirstTimeShown property from MatchingSuggestionWithVisibilityKey interface
- shownToUser property from FillInAtCursorSuggestion interface
- All logic computing and returning isFirstTimeShown in findMatchingSuggestion()
- Related test assertions and test data
- Created new documentation page for AGENTS.md files in Agent Behavior section
- Covers what AGENTS.md is, syntax, file location, practical examples, and best practices
- Explains how AGENTS.md works in Kilo Code and interacts with other configuration systems
- Includes troubleshooting, migration guides, and advanced topics
- Added page to sidebars.ts navigation under Agent Behavior section
- Added changeset for documentation addition
…LineOnly

When applyFirstLineOnly truncates a multi-line suggestion to just the first
line, the suggestionKey now reflects the truncated text instead of keeping
the original key. This ensures visibility tracking correctly identifies the
truncated suggestion as different from the full multi-line version.

- Extract replaceSuggestionInSuggestionKey helper function
- Add tests for suggestionKey update behavior
…g key

Move suggestion key serialization from GhostInlineCompletionProvider to
AutocompleteTelemetry. The startVisibilityTracking method now accepts
the full FillInAtCursorSuggestion object and derives the key internally.

- Move getSuggestionKey() to AutocompleteTelemetry and export it
- Rename MatchingSuggestionWithVisibilityKey to MatchingSuggestionWithFillIn
- Change suggestionKey property to fillInAtCursor
- Update applyFirstLineOnly to create new FillInAtCursorSuggestion when truncating
- Update all tests to use the new API
…elemetry

feat: add AUTOCOMPLETE_UNIQUE_SUGGESTION_SHOWN telemetry event
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
markijbema and others added 13 commits January 6, 2026 15:06
This fixes that behaviour, but longterm I will switch away from using text :P
The test now expects fillInAtCursor to be preserved unchanged when
truncating multi-line suggestions, ensuring consistent telemetry keys.
Removed multiple practical examples and guidelines related to React, backend API, security, documentation, testing, and project standards from agents-md.md.
when typing into it was counting each letter as a suggestion
…eview-fork-security

Revert "docs: update code review docs to clarify fork PRs"
* spike: migrate worktree and git logic from CLI to agent manager

* chore: add changeset for worktree migration

* docs: document worktree location for parallel mode

* chore: increase agent commit timeout to 60s

* Simplify changeset

* fix: make WorktreeManager tests cross-platform compatible

- Add helper to normalize path separators for assertions
- Fix tests to handle both / and \ in paths (Windows vs Unix)
* feat(cli): add --append-system-prompt option

- Add --append-system-prompt CLI flag to append custom instructions to system prompt
- Pass appendSystemPrompt through CLI -> ExtensionService -> ExtensionHost -> ExtensionState
- Integrate with system prompt generation in src/core/prompts/system.ts
- Add tests for CLI flag parsing and system prompt appending
- Add changeset for patch release

* fix(cli): add appendSystemPrompt to options type exclusion

The appendSystemPrompt property was added to ExtensionServiceOptions but
not properly excluded from the Required<> type constraint, causing a
TypeScript error. This fix:

1. Adds appendSystemPrompt to the Omit<> list in the options type
2. Adds appendSystemPrompt as an optional property in the type union
3. Spreads appendSystemPrompt into the options object when provided

* fix: use proper kilocode_change markers for multi-line block

Changed single-line comment to start/end markers for the multi-line
appendSystemPrompt block in system.ts as per project conventions.

* fix(cli): complete appendSystemPrompt data flow from CLI to system prompt

The --append-system-prompt CLI option was not working because the value
was not being properly propagated through the full chain:

1. Added appendSystemPrompt to globalSettingsSchema in packages/types
   so it's recognized as a valid RooCodeSettings key

2. Added sync logic in ExtensionHost.syncConfigurationMessages() to send
   appendSystemPrompt to the extension via updateSettings message

3. Added appendSystemPrompt to getState() return object in ClineProvider.ts
   so it's included in ClineProviderState (which is passed to SYSTEM_PROMPT)

4. Added appendSystemPrompt to CLI's ExtensionState interface for type safety

The full data flow is now:
CLI options -> ExtensionService -> ExtensionHost.syncConfigurationMessages()
-> updateSettings message -> contextProxy.setValue() -> getState()
-> ClineProviderState -> SYSTEM_PROMPT() -> appended to prompt

* chore: remove unnecessary kilocode_change markers from CLI code

CLI code is Kilo Code-specific and doesn't need kilocode_change markers
since it won't be merged with upstream Roo Code.

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: marius-kilocode <[email protected]>
Reorganize for clarity
docs: Add comprehensive AGENTS.md documentation page
@pull pull bot locked and limited conversation to collaborators Jan 6, 2026
@pull pull bot added the ⤵️ pull label Jan 6, 2026
@pull pull bot merged commit 5611131 into jasonkneen:main Jan 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants