local-first tools and upstream fixes

做本地优先工具,也给上游项目修小而具体的 bug。

我维护几个面向真实使用场景的小工具:浏览器白板、学术写作流程、自我反思问卷。现在的重点是把项目边界讲清楚,把测试和文档补齐,并参与外部开源项目的日常维护。

项目先讲边界,再讲功能。

这些仓库不是拿来包装全能产品的。它们更像持续打磨中的工作台:目标明确、取舍明确、问题公开。

MindNotes Pro

Local-first React/Canvas whiteboard for offline drawing and note taking. The project focuses on privacy, browser availability, and readable implementation rather than collaboration or cloud sync.

TypeScript React Canvas offline-first

Thesis Optimizer

Academic writing assistant for clarity, citation hygiene, formatting, and auditable revision workflows. It explicitly avoids ghostwriting, plagiarism masking, and integrity shortcuts.

Python writing workflow academic integrity agents

Quiz Platform

100+ self-reflection quizzes and MBTI matching pages for personal insight and lightweight sharing. It is documented as a non-clinical product, not a diagnostic tool.

Next.js i18n PWA non-clinical

我希望项目经得起代码审查,也经得起动机审查。

清楚归因

学习成熟工具的交互,但不把外部 PR 或设计语言包装成原创神迹。

边界优先

本地优先工具不假装有云协作,AI 写作工具不服务学术不端。

小 PR 可合并

外部贡献优先选择可复现、可测试、可维护的小问题。

债务公开

测试失败、lint 基线、文档缺口会进入路线图,而不是藏在 README 的口号后面。

最近在做的外部开源贡献。

开源形象不是靠 profile 形容词堆出来的。更有说服力的是能被别人复查的 issue、PR、测试和维护讨论。

plait-board/drawnix

Fix middle mouse panning in freehand tools

Freehand pen and eraser tools now only start drawing on the primary pointer button, allowing middle mouse panning to fall through to shared board behavior. Includes focused coverage.

plait-board/drawnix

Fix text style inlining for PNG export

PNG export now inlines text container styles in the same path used for board image export, reducing multiline text clipping. Includes a regression test for the export options.

写作也要像维护文档。

接下来

计划补更多维护日志:测试债务清理、外部 PR 复盘、AI 写作工具的安全边界。

Repositories