tinsfox
@tinsfox
Joined on 24 November 2017
🚀 Full Stack Dev | OSS Enthusiast 🛠️ Creator of shadcnui-boilerplate & react-vant contributor ⚡️ Building tools for developers | Code for fun, code with ❤️
GitHub Stats
80
Followers
174
Repositories
0
Organizations
3
Gists
146
Pull Requests
172
Issues
469
Commits
0
Sponsors
30
Contributed To
724
Star Earned
Most Used Languages
86.52%
TypeScript
4.54%
Go
2.47%
MDX
2.10%
CSS
1.59%
JavaScript
1.41%
HTML
0.56%
Less
0.32%
Shell
Popular Projects
poketto-stack
A boilerplate built with shadcn/ui for rapid development of modern web applications.
TypeScript
503
55
12
8
github-hosts
GitHub 访问加速,解决 GitHub 访问慢的问题。使用 Cloudflare Workers 和公共 DNS API 来获取 IP 地址。
Go
174
33
12
1
cf-downloader
cf downloader 是一个强大而灵活的文件代理工具,运行在 Cloudflare Workers 平台上。它允许用户安全地代理和下载文件,而无需直接暴露原始文件URL。
TypeScript
7
3
0
0
devui-cli
devui devui-cli cli
TypeScript
6
3
5
4
hono-react-starter
No description
TypeScript
5
0
0
0
dia-tab
No description
HTML
3
0
0
0
Top Contributions
Top contributions made by the user in the last year.
Charts
Follow Up
Activity Graph
Contributions Calendar
Contributions made by the user in the last 365 days.
Recent Activity
9/28/2025, 7:10:19 PM
- feat: integrate i18next for internationalization support (#65) * feat: integrate i18next for internationalization support - Added i18next and react-i18next dependencies for localization. - Updated various components to utilize translation functions for user-facing text. - Enhanced user experience by providing multilingual support across the application. * feat: improve i18n implementation with better translations and accessibility - Add proper i18n keys for language switcher tooltips and aria-labels - Replace hardcoded Chinese console error messages with i18n keys - Add missing translation keys for new UI elements - Improve accessibility with proper aria-label attributes --------- Co-authored-by: Jason <farion1231@gmail.com>
- feat: change default language to Chinese with English fallback
9/28/2025, 3:53:46 PM
9/28/2025, 3:53:33 PM
9/28/2025, 3:13:09 PM
- feat: add configuration wizard for custom Codex providers - Add quick configuration wizard modal for custom providers - Generate auth.json and config.toml from simple inputs (API key, base URL, model name) - Extract generation logic into reusable functions (generateThirdPartyAuth, generateThirdPartyConfig) - Pre-populate custom template when selecting custom option - Add wizard button link in PresetSelector for custom mode - Update PackyCode preset to use the new generation functions
- refactor: improve form validation in CodexConfigEditor using HTML5 validation API - Replace custom error state with native HTML5 form validation - Add useRef hooks for input field validation management - Add pattern attributes to enforce non-empty input validation - Leverage browser's built-in validation UI for better UX - Extract closeTemplateModal function for consistent modal closing
- feat: enhance Codex provider configuration wizard with display name field - Add separate display name field for provider (supports Chinese) - Keep provider code field for internal identifier (English only) - Add onNameChange callback to update provider name from wizard - Improve code formatting consistency in ProviderForm
- fix: add @codemirror/lint (#45) LGTM!
- feat: add dedicated API key URL support for third-party providers - Add optional apiKeyUrl field to ProviderPreset interface for third-party providers - Update ProviderForm to prioritize apiKeyUrl over websiteUrl for third-party category - Make provider display name required in CodexConfigEditor with validation - Configure PackyCode preset with affiliate API key URL This allows third-party providers to have separate URLs for their service homepage and API key acquisition, improving user experience when obtaining API keys.
- feat: add created_at timestamp field to Provider struct - Add optional created_at field to track provider creation time - Serialize field as camelCase (createdAt) for JSON compatibility - Skip serialization when field is None to maintain backward compatibility
- refactor: update VSCode apply button style to match Linear design theme - Changed from solid emerald button to bordered style for better visual hierarchy - Apply action: gray border, blue on hover (consistent with theme color) - Remove action: gray border, red on hover (indicates destructive action) - Better distinction between apply/remove states while maintaining Linear's minimalist aesthetic
- fix: correct HTML pattern attribute regex escape in Codex config wizard Fixed validation pattern in provider name input field by removing incorrect double backslash escape (\S to \S) to properly validate non-whitespace input
- refactor: optimize React state updates and improve UI text clarity - Use functional setState to ensure proper state updates in ProviderForm - Improve Chinese UI text consistency in CodexConfigEditor: - Change "API 基础地址" to "API 请求地址" for clarity - Simplify "供应商官网" to "官网地址" - Update placeholder text for consistency - Move requires_openai_auth to model_providers section in Codex config template
- fix: stabilize provider action button width and improve visual consistency - Set fixed width (76px) for enable/active buttons to prevent layout shift - Hide play icon in active state to optimize space usage - Add center alignment and nowrap to ensure consistent appearance
- release: bump version to 3.3.0 Update version across all package files and add comprehensive changelog for v3.3.0 release featuring VS Code integration, shared config snippets, enhanced Codex wizard, and cross-platform improvements.
- feat: add support for DeepSeek-V3.1-Terminus
- release: bump version to v3.3.1 Add support for DeepSeek-V3.1-Terminus model with emergency hotfix release
- feat: add single instance plugin to prevent multiple app instances Integrates tauri_plugin_single_instance to ensure only one instance of the application runs at a time. When attempting to launch a second instance, it will focus the existing window instead.
- Switch MSI installer to per-user LocalAppData target
- fix: improve per-user MSI installer component tracking - Change File KeyPath to "no" and use registry value as KeyPath instead - Add registry entry for better component state tracking - Enhance uninstall cleanup to remove LocalAppData files and folders
- feat: add portable mode support and improve update handling - Add portable.ini marker file creation in GitHub Actions for portable builds - Implement is_portable_mode() command to detect portable execution - Redirect portable users to GitHub releases page for manual updates - Change update URL to point to latest releases page - Integrate portable mode detection in Settings UI
- Add support for qwen3-max
- refactor: reorganize documentation structure - Remove docs/ from .gitignore to track documentation files - Delete completed plan documents (encrypted-config-plan.md, updater-plan.md) - Add roadmap.md with project milestones and future features
- refactor: consolidate chatgpt.config cleanup logic Merged duplicate try-catch blocks that handle invalid chatgpt.config values. Now handles all edge cases (scalar values, arrays, empty objects) in a single unified check, reducing code duplication and improving performance by parsing JSON only once.
9/26/2025, 6:39:02 PM
9/26/2025, 6:25:49 PM
9/26/2025, 6:18:04 PM
9/26/2025, 6:17:55 PM
9/26/2025, 6:16:44 PM
9/22/2025, 9:08:33 AM
9/22/2025, 9:03:30 AM
9/22/2025, 9:00:56 AM
9/22/2025, 5:45:53 AM
9/21/2025, 3:46:51 PM