I'm an AI product engineer in Guangdong, China, building agentic canvases, document intelligence, and developer tools. I work where product taste, interaction design, and engineering depth meet—reducing ambiguity and shipping the details that make a product hold together.
Make AI feel useful.
Current inquiry: how AI agents can work with visual canvases instead of only replying in chat.
Inkling · Agent-native visual thinking
Inkling is an AI mind-mapping canvas. Muse reads your PDFs and draws editable maps live—skeleton first, details grafting in—then sees the nodes you edit by hand and builds on those changes instead of regenerating the whole map.
React · Hono · Vercel AI SDK · AntV X6
|
Self-hostable AI agent that turns PDFs into editable mind maps with visible tool calls and built-in RAG.
|
Client-side, BYOK image playground for generation, editing, inpainting, and voice control.
|
Turns OpenAPI, Swagger, Markdown, and HTML docs into MCP service definitions.
|
Earlier work: vue3-pdf-viewer / @xianjianlf2/vue-pdf-viewer, an archived PDF.js viewer for Vue 3.
I work upstream in the active projects I use—especially agent runtimes, developer tools, and infrastructure. The visible rows surface current high-signal work; the expandable list keeps a representative activity trail. Browse the live list of open pull requests →
More active upstream work
Curated snapshot checked on 22 Sep 2026; the live GitHub query above is the source of truth.
More merged work
| Firewood | Escape JSON strings in fwdctl dumps |
| stablyai/orca | Open symlink files when stat fails |
| Dashi Taskboard | Improve dark-mode select contrast |
| faker | Exclude reserved port 0 from internet.port() |
| Quilt | Give quilt list a table of bucket, namespace, and status |
| MLflow | Hide redundant metric names in chart cards |
| Beanie | Preserve awaitable types for find-one upsert |
| Mastra | Abort A2A streams when tasks are canceled · Retry empty working-memory extraction |
| Qwen Code | Fail closed on zero-inode file-cache entries |
| pnpm | Apply the publishedBy cutoff to the held-back update baseline |
| Luxon | Respect endpoint zones in hasSame for empty intervals |
| Calico | Sanitize chart-version labels |
| Kaneo | Avoid per-task kanban metadata requests |
| GitHub Copilot SDK | Clarify working-directory defaults across SDKs |
| memfs | Resolve relative streams from virtual cwd · Match Node directory iteration lifecycle · Finish BYOB file stream reads at EOF · Embed sources in published sourcemaps · Remove tslib from peer dependencies |
| stablyai/orca | Faster startup through overlapping sidebar and worktree loading · Correct CJK IME behavior when renaming commits |
| FlowiseAI/Flowise | Improved the Add Nodes interaction |
| apitable/apitable | Improved Simplified Chinese localization |
| Navideck/universal_ble | Fixed Dart primary-constructor compatibility |
| crxjs/chrome-extension-tools | Added Vue use-case documentation |
| luckysmg/flutter_swipe_action_cell | Added the hasAnyOpenCell query API · Fixed clipped elevation shadows |
| fastclaw-ai/weclaw | Detected agents installed through nvm and mise |
| cuixueshe/dida | 5 merged PRs across draggable navigation, project CRUD, and bug fixes |
I rebuild familiar tools—and now agent runtimes—from scratch to understand the decisions beneath their APIs. Each project develops one system incrementally, commit by commit.
super-agent · Tool-using agents, chapter by chapter
A branch-by-branch study of streaming, tool calling, MCP clients, deferred tool loading, session persistence, and context compaction.
TypeScript · Vercel AI SDK v6 · Qwen · MCP
Explore the 6-project mini-* source-code series
| Project | Systems explored |
|---|---|
| mini-vue | Reactivity, virtual DOM diffing, template compilation, lifecycle hooks |
| mini-koa | Middleware composition, onion model, context, router layering |
| mini-react | Fiber, reconciliation, useState, useEffect |
| mini-webpack | Module bundling, dependency graphs, loaders, plugins |
| mini-compiler | Tokenization, parsing, AST traversal, code generation |
| ts-axios | Interceptors, config merging, data transforms, cancellation, and other HTTP-client internals |
Have an interesting product idea or open-source problem?
See what I've shipped · GitHub activity · Juejin · Say hello




