Skip to content

feat(core): Enhance retention tracking and tool handling - #754

Merged
haiphucnguyen merged 4 commits into
mainfrom
feature/improvements
Oct 8, 2026
Merged

haiphucnguyen merged 4 commits into
mainfrom
feature/improvements

Conversation

@haiphucnguyen

Copy link
Copy Markdown
Collaborator

Summary

  • Expanded analytics retention tracking to include 60, 90, 180, and 365+ launch counts.
  • Improved "Maybe later" dialog flow to handle snooze state persistence reliably.
  • Log tool execution failures (e.g., timeout, denial) to the chat history memory.
  • Updated session initialization to utilize chat memory for session context.

Related Issue(s)

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📝 Documentation
  • ♻️ Refactor (no functional change)
  • 🧪 Tests
  • 🔧 Chore / tooling / CI

What Changed & Why

How to Test

./gradlew test

Screenshots / Recordings (if applicable)

Checklist

  • I have read the CONTRIBUTING guide
  • My branch is up to date with main
  • I ran ./gradlew spotlessApply and ./gradlew detekt locally
  • I ran ./gradlew test and all tests pass
  • I added/updated tests for my changes (if applicable)
  • I added/updated documentation (if applicable)
  • My commits are signed off (DCO) — git commit -s
  • This PR is focused on a single feature/fix

Additional Notes

- Expanded analytics retention tracking to include 60, 90, 180, and 365+ launch counts.
- Improved "Maybe later" dialog flow to handle snooze state persistence reliably.
- Log tool execution failures (e.g., timeout, denial) to the chat history memory.
- Updated session initialization to utilize chat memory for session context.
Copilot AI balanced review requested due to automatic review settings October 8, 2026 06:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The independently cached memory lookup can return null or the wrong instance for an existing chat client.

1 open finding
What changed in this PR

Enhances retention analytics, prompt snoozing, and tool-failure memory handling.

Changes:

  • Adds long-term retention milestones.
  • Persists “Maybe later” snoozing immediately.
  • Records denied or timed-out tool calls in session memory.
File Description
ChatClientExtensions.kt Adds synthetic tool results for approval failures.
AnalyticsEvent.kt Documents expanded retention buckets.
Analytics.kt Implements additional retention milestones.
Main.kt Updates prompt callbacks and Clock import.
StarPromptDialog.kt Separates skipping from final dismissal.
SessionManager.kt Passes session memory into streaming.

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread desktop-shared/src/main/kotlin/io/askimo/ui/session/SessionManager.kt Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Multi-tool failures remain incomplete, and the cache-size change breaks an eviction regression test.

2 open findings
1 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread shared-jvm/src/main/kotlin/io/askimo/core/providers/ChatClientExtensions.kt Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Production callback ordering leaves the pending tool-request map empty when denial or timeout occurs.

3 open findings
1 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread shared-jvm/src/main/kotlin/io/askimo/core/providers/ChatClientExtensions.kt Outdated
Comment thread shared-jvm/src/main/kotlin/io/askimo/core/providers/ChatClientExtensions.kt Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Tool recovery depends on LangChain4j callback and memory ordering that the focused fake-stream tests do not fully validate.

0 open findings

3 resolved since last review

🧠 Review effort: Balanced

@haiphucnguyen
haiphucnguyen merged commit f44cdd7 into main Oct 8, 2026
10 of 11 checks passed
@haiphucnguyen
haiphucnguyen deleted the feature/improvements branch October 8, 2026 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants