Skip to content

Add source chat commands and improve document chat - #152

Merged
RobRoyce merged 39 commits into
mainfrom
feature/chat-commands
Oct 8, 2026
Merged

RobRoyce merged 39 commits into
mainfrom
feature/chat-commands

Conversation

@RobRoyce

@RobRoyce RobRoyce commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Add quiz, categorization, topic, and tutor commands to source and project chat. Improve document loading, summarization, metadata editing, and chat presentation.

This legacy branch is the foundation for the revival stack. Main is now included. The conflict resolution preserves the stack's newer axios and follow-redirects versions and main's README changes.

This is the first PR in the stack. Merge the stack in order with merge commits, retargeting each next PR to main after its predecessor lands. Do not squash or delete intermediate branches during integration.

Validation on the combined stack at 6ee979b2615db242ca6525bb7d0ccc36d563479f, using Node.js 24.21.0 in an isolated checkout:

  • Clean immutable dependency install: passed.
  • Development build and storage type check: passed.
  • Unit tests: 8 passed.
  • Storage tests: 35 passed.
  • Hidden-window desktop tests: 4 passed.
  • Headless Chrome tests: 6 passed.
  • Unsigned production package and packaged workflow: passed (1 test).

Each historical intermediate branch was not rebuilt independently. Signing, live AI credentials, other operating systems, and broad dependency security auditing are outside this review.

Focused review found no confirmed blocker in the combined stack. The review covers basic workflows, data preservation, authentication, and the dependency changes. Broader modernization remains separate work.

-feat(Import): add `Web Import` dialog for importing multiple URLs at a time
…tutor.

feat(Chat): add a "loading" indicator to Chat tab in Source, allowing the user to switch tabs and still know when the Chat has completed.

refactor: Centralize control of Chat services to avoid duplicate work in multiple components.

style: fix an issue where the project tree would change sizes mid-render, making it look clunky.

style: update appearance of Inbox.

style: Fix a rendering issue where visual artifacts would display intermittently when a source dialog was maximized.
const limitedChunks = this.tokenizerUtils.chunkLimitText.bind(
this.tokenizerUtils

text = limited(text.replace("\n", " "), messageTokens + 400).replace(
const limitedChunks = this.tokenizerUtils.chunkLimitText.bind(
this.tokenizerUtils

text = limited(text.replace("\n", " "), messageTokens + 400).replace(
Comment on lines +199 to +202
content: `Existing Projects:
===
${choices}
===`,
Comment on lines +255 to +258
content: `Source:\n===\n${this.tokenizerUtils.limitText(
input,
500
)}\n===`,
},
{
role: "system",
content: `Categories:\n===\n${choices.join("\n")}\n===`,
},
{
role: "system",
content: `The Source is titled "${req.body.source.title}".`,
},
{
role: "system",
content: "The Source is titled " + source.title + ".",
export class SourceParser {
static async isPdf(url: string) {
try {
const response = await fetch(url, { method: "HEAD" });
getRouter() {
router.post(
"/quiz",
this.projectController.quiz.bind(this.projectController)

@RobRoyce RobRoyce left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Focused integration review of PR #152 at b3bf12349a0f0b8060314efc419874cf2d5b1070.

No confirmed blocking finding in the combined revival stack. The independent code review checked storage writes, schema migration, managed files, backup/restore, local authentication, session recovery, Electron startup, and dependency removal. Main's conflicts were resolved without downgrading the stack's dependencies. All original commits are preserved.

Validation on the combined stack at 6ee979b2615db242ca6525bb7d0ccc36d563479f, using Node.js 24.21.0 in an isolated checkout:

  • Clean immutable dependency install: passed.
  • Development build and storage type check: passed.
  • Unit tests: 8 passed.
  • Storage tests: 35 passed.
  • Hidden-window desktop tests: 4 passed.
  • Headless Chrome tests: 6 passed.
  • Unsigned production package and packaged workflow: passed (1 test).

Each historical intermediate branch was not rebuilt independently. Signing, live AI credentials, other operating systems, and broad dependency security auditing are outside this review.

This is a review record submitted through the PR author's account, not the independent approving review required by main's branch protection. CodeQL status is reported separately by GitHub.

@RobRoyce
RobRoyce marked this pull request as ready for review October 8, 2026 17:41
@RobRoyce

RobRoyce commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

CodeQL result clarification before integration: the analysis jobs succeeded, but the separate results check reports 21 new alerts on the legacy base PR (3 critical and 18 high). Successful analysis is not a clean security result.

A focused review of final stack commit 6ee979b found no additional merge blocker for the current local desktop scope. Later commits bind chat to an ephemeral loopback port and require a random bearer token before parsing requests. Storage, migration, and restore validate record IDs. The model has no filesystem or network execution tools.

Residual risks remain and are not dismissed as false positives: URL fetching can reach private networks through user-selected URLs or redirects; legacy file metadata from an untrusted backup can cause local file reads; chat cache paths need their own ID validation; source text and summaries appear in system messages; authenticated workloads lack rate limits. These require focused hardening during backend extraction, before hosted or multi-user use. Authentication does not make imported records trustworthy.

The merge uses the repository owner's explicit administrator-override authorization. Alerts remain open and branch protection remains unchanged. The 54 passing functional tests do not constitute a security certification.

@RobRoyce
RobRoyce merged commit 7bca2d2 into main Oct 8, 2026
2 of 3 checks passed
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