19 Commits
Author SHA1 Message Date
Bingxi Zhao (Frank)andClaude Opus 5 a7c30a588f release: v1.6.8
Twenty-two community pull requests and the reports behind them. Where
v1.6.7 chased a token budget spent on hidden thinking, this one answers
a different complaint: I did a thing and the app quietly did nothing.

New surfaces: a recycle bin that makes a deleted chat recoverable,
search across the full text of your conversation history, and
`knowledge_frontier` — a tool that reads a knowledge base and goes
looking for what is not in it.

Fixes worth naming: a reasoning model that stops mid-thought now fails
with the counters that prove it rather than an opaque error; deep book
URLs open the book instead of the library; the reading outline tracks
the page again; an EPUB that macOS re-zipped reads as the book it is; a
file whose extraction produced nothing is listed with the reason instead
of skipped in silence; the launcher stops killing a backend that is
merely still starting.

Also in this commit: README prose plus all eleven translations, the
v1.6.8 release notes with v1.6.5 archived past the one-week line, three
duplicate keys removed from the locale files (`Delete permanently` had
two different zh values, and the wrong one was winning), and the mypy
annotation that made every `conn.execute` in the new file library look
like a call on None.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:54:16 +08:00
Bingxi Zhao (Frank) 6e6e56aedb release: v1.6.3
Ship the breaking front- and back-end runtime and route refactor,
learner and guardian flows, grounded reading, knowledge and parser
updates, and recoverable long-running streams.

Release notes: assets/releases/ver1-6-3.md
2026-09-02 04:09:11 +08:00
Bingxi Zhao (Frank) ce7c2dc2dc release: v1.6.1 — one key, one navigator, one sidebar you arrange
Model configuration was one layer replicated seven times: every service
stored its own profile with its own credentials, so a single OpenRouter
key had to be pasted into five separate pages. This release splits that
in two — a **connection** holds one vendor credential and links it down
to every service that vendor can serve, and a **task model** takes the
calls nobody asks for (naming a conversation, writing the composer's
starting points) off the model picked for actual reasoning. Both are
opt-in; existing per-service profiles resolve exactly as before.

Around that: Settings drops the card grid for a persistent searchable
navigator whose landing page answers "what state am I in" instead of
repeating the directory; Mastery Path files study conversations under
their topic and opens them in the tutor rather than dropping them on
/home; the sidebar folds features into More and reorders by drag; the
reading companion is rebuilt from /home's own chat components; and the
LightRAG engine talks to the SDK directly, so its extra no longer drags
MinerU in transitively.

Also back-merges PR #1041 (Anthropic SDK 1.x temperature via extra_body)
and PR #741 (owner-only auth secret/token files), which had been merged
straight into main and never flowed back to dev.

Release notes: assets/releases/ver1-6-1.md
Gates: pre-commit 15/15, ruff clean, pytest 5802 passed, web 450 node
tests, eslint 0 errors, docs build clean.
2026-08-30 13:19:42 +08:00
Bingxi Zhao (Frank) 3e82f13042 build(pre-commit): pin ruff to the version CI installs
The hook was on v0.14.7 while `.github/workflows/tests.yml` installs
ruff==0.16.0. The two disagree on real files — 0.14.7 wanted a blank
line removed that 0.16.0 considers already formatted — so the local gate
and the CI gate were judging the same code by different rules, and which
one you satisfied depended on which ran last.

Verified clean on this tree: `pre-commit run --all-files` passes at
v0.16.0 with no rewrites, and `ruff check .` + `ruff format --check .`
at 0.16.0 agree.
2026-08-25 10:55:29 +08:00
920ebc830b chore(web): stop tracking Next build output and enforce repo hygiene (#865)
* chore: keep Next build output out of Git

* chore: enforce repository hygiene in CI

* chore: enforce clean primary workspaces

* chore: block accidental main commits

* fix: make repository hygiene hook fail fast

---------

Co-authored-by: XZH <cto@xzh.ai>
Co-authored-by: Bingxi Zhao (Frank) <13051345080@163.com>
2026-08-16 19:12:24 +08:00
xuyua9andBingxi Zhao 59798cd2ea fix: make Ruff pre-commit hook fail on lint errors (#838)
Co-authored-by: Bingxi Zhao (Frank) <13051345080@163.com>
2026-08-16 19:10:29 +08:00
Bingxi Zhao (Frank)andClaude Fable 5 452de66729 release: v1.4.3 — TutorBot→Partners, single-loop Chat, real multi-user isolation
The biggest cut since v1.4.0:

- Partners: TutorBot renamed and rebuilt on the product chat agent loop —
  production IM pipeline (retry/dedup/coalescing, per-channel delivery),
  live streaming on Telegram/Discord/Feishu, new WeCom AI Bot channel
  (15 connectors), web-chat attachments, soul template library + editor.
  Automatic non-destructive migration from data/tutorbot/; HTTP API moved
  to /api/v1/partners.
- Chat: single exploring agent loop with native tool calling; Activity
  header with collapsible thinking/tool trace.
- Multi-user: per-user grants v2 (tools/MCP/exec), data/users + data/system
  layout with automatic migration, runner mounts only the user workspace.
- Visualize: inline themed SVG, structured prompts, local validate+repair
  replacing the LLM review round.
- Co-writer Mermaid diagrams + selection RAG/web; file viewer docx/xlsx
  previews; MinerU cloud parsing backend; office skills on by default;
  CLI chat renderer rewrite.
- Docs rebuilt at deeptutor.info: per-channel setup guides (en+zh),
  refreshed screenshots.
- Pre-commit clean sweep: defusedxml for SVG validation, usedforsecurity
  flags on content hashes, mypy fixes, types-croniter stub.

Release notes: assets/releases/ver1-4-3.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 17:17:43 +08:00
Bingxi Zhao (Frank) f3779138ae fix: remove lightrag and unify llm & search config 2026-03-13 23:48:49 +08:00
Bingxi Zhao eec9981de6 doc: update 2026-01-18 15:47:21 +08:00
Bingxi Zhao 74fbaf752d fix lint 2026-01-18 12:38:14 +08:00
Bingxi Zhao b3f511d45f feat: enhance RAG pipeline with Docling support and improve CI/CD workflows 2026-01-18 12:25:45 +08:00
Bingxi Zhao 5a546b53f6 feat: enhance RAG pipeline with Docling support and improve CI/CD workflows 2026-01-18 12:25:45 +08:00
Pancake f5b7a2e2df fix: env, file upload, web refactor, llm details 2026-01-15 21:05:16 +08:00
Bingxi Zhao 16bc0f4656 ver0.5.0-dev 2026-01-15 02:49:17 +08:00
Scarlet Moore a0433d784e Feature/pre commit ci (#37)
* feat: add comprehensive pre-commit CI hooks

- Add safety for dependency vulnerability scanning
- Add bandit for Python security linting with appropriate skips
- Add interrogate for docstring coverage checking (60% threshold)
- Add mypy for type checking with permissive CI configuration
- Update requirements.txt with safety and bandit dependencies
- Configure all tools for CI compatibility (non-blocking for initial setup)

* security: add hardening measures based on upstream issues

- Add .gitattributes rules to force LF line endings for critical files (fixes CRLF security issues)
- Enhance document validator with MIME type validation and stricter PDF size limits
- Fix subprocess security issues by adding shell=False to prevent command injection
- Add resource exhaustion protection with separate PDF size limits (50MB vs 100MB general limit)

Addresses upstream issues:
- #97: Cross-platform deployment failures due to CRLF line endings
- #31: Large PDF processing failures and resource exhaustion
- Security hardening for subprocess calls to prevent injection attacks

* docs: streamline contribution process and pre-commit checks

- Update and format CONTRIBUTING.md for clarity

- Simplify pull request template

- Adjust pre-commit config to be more lenient locally

* chore: update .gitignore, .secrets.baseline, pyproject.toml, and requirements.txt for improved configuration and dependency management
2026-01-14 13:57:18 +11:00
RinCodeForge927 3b20344054 chore: fix ruff linting in tests and refine pre-commit config 2026-01-07 00:40:35 +07:00
RinCodeForge927 3d2e96b06e fix: resolve linting errors and stabilize pre-commit pipeline
Squashing some bugs and cleaning up the linting mess:
- Fixed a bug in research.py where 'config' was referenced before it was loaded in the WebSocket handler.
- Cleaned up redundant and unused imports across several agent utility files.
- Re-disabled ESLint in the pre-commit config for now since the /web directory is missing a valid configuration file.
- Normalized end-of-file formatting across the repo.
2026-01-07 00:24:15 +07:00
RinCodeForge927 e071c3755b security: patch path traversal in jspdf and tighten pre-commit hooks
Cleaning up some critical vulnerabilities found during the last audit. Specifically:
- Upgraded jspdf in web/ to fix a critical Path Traversal vulnerability.
- Removed --exit-zero from ruff pre-commit hooks so we actually block broken code instead of just auto-fixing and moving on.
- Re-enabled ESLint in the pre-commit pipeline to maintain frontend code standards.
- Updated vitepress in docs/ to clear out some moderate CVEs in the dev server dependencies.
2026-01-06 23:52:01 +07:00
Pancake fbb0b15cad Initial commit 2025-12-28 23:45:41 +08:00