-
Notifications
You must be signed in to change notification settings - Fork 2
feat: AI conversation persistence with DB-backed history #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 8 commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
3e40252
feat: add DB-backed AI conversation persistence
BillChirico 08d1da7
fix: prevent race condition in async DB hydration
BillChirico 804d662
chore: remove stray file
BillChirico 8a58e8c
fix: expand biome.json includes to src/**/*.js and fix all lint errors
BillChirico 92b2c19
fix: add CHECK constraint on role column in conversations table
BillChirico 7313073
docs: add migration TODO for loadState in DB startup path
BillChirico 4955beb
fix: harden async history hydration and DB persistence behavior
BillChirico 010c8e3
test: cover hydration race handling and align header test naming
BillChirico 59991e7
fix: guard config set return-shape traversal
BillChirico afa64bc
fix: add created_at index for conversation ttl cleanup
BillChirico 8fd72d7
fix: dedupe concurrent async history hydrations per channel
BillChirico 6a099f4
fix: include stack traces in welcome error logging
BillChirico cb40ef3
test: harden hydration race assertion with waitFor
BillChirico ebb6b44
test: assert DB write failure logging in ai history persistence
BillChirico c797b66
fix: replace channel history on DB hydration to avoid duplicates
BillChirico 36baa91
chore: sort config command imports for biome
BillChirico 468df96
fix(ai): coordinate sync/async history hydration
BillChirico ed5283a
fix(ai): unref conversation cleanup timer
BillChirico 929dd5b
test(db): cover initDb re-entrancy guard
BillChirico 3c5fa44
refactor: remove dead code getHistory and update tests to use getHist…
BillChirico e306ff9
fix: remove duplicate error handlers in index.js
BillChirico 6d9ce1b
fix: add TTL filter to conversation history initialization
BillChirico eb513b3
chore: resolve merge conflicts with main
BillChirico 252cd9d
fix: align tests with persistence architecture and resolve merge conf…
BillChirico File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| { | ||
| "$schema": "https://biomejs.dev/schemas/2.3.14/schema.json", | ||
| "files": { | ||
| "includes": [ | ||
| "src/**/*.js", | ||
| "tests/**/*.js", | ||
| "!node_modules/**", | ||
| "!coverage/**", | ||
| "!logs/**", | ||
| "!data/**" | ||
| ] | ||
BillChirico marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| }, | ||
| "linter": { | ||
| "enabled": true, | ||
| "rules": { | ||
| "suspicious": { | ||
| "noConsole": "error" | ||
| } | ||
| } | ||
| }, | ||
| "formatter": { | ||
| "enabled": true, | ||
| "indentStyle": "space", | ||
| "indentWidth": 2, | ||
| "lineWidth": 100 | ||
| }, | ||
| "javascript": { | ||
| "formatter": { | ||
| "quoteStyle": "single", | ||
| "trailingCommas": "all", | ||
| "semicolons": "always" | ||
| } | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate
coverage/entry.coverage/is already listed on Line 5. This second entry is redundant.🧹 Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents