Commit Graph

4 Commits

Author SHA1 Message Date
tigerenwork 72cff00f72 Add main window with bug detail view and in-app editing
Phase 1 — read-only detail experience:
- New main window (NavigationSplitView): searchable bug list sidebar with
  Active/All filter, detail pane with full metadata, description, and
  per-bug Open in Feishu / Copy Link
- Popover row click now opens the in-app detail (Open in Feishu kept via
  context menu and footer)
- Display extra table fields: module, source, flow status, fix notes
  (new field mappings with Chinese defaults), and screenshot attachments
  with in-app thumbnails (media download with bitablePerm extra auth)
- FieldMappings now decodes tolerantly so older persisted configs survive

Phase 2 — editing (status, fix notes, screenshots):
- OAuth scope upgraded from bitable:app:readonly to bitable:app
  (requires re-auth; permission errors prompt to reconnect)
- Status picker driven by live field metadata (option names + colors)
- Fix notes text editor with Save/Cancel
- Add screenshots: image picker -> media upload (upload_all) -> append
  file tokens to the record
- AttachmentLoader and BugEditService share one field-metadata cache

Note: flow status (流转状态) is a Bitable workflow/Stage field and cannot
be written via the OpenAPI; it stays read-only.
2026-09-08 11:11:16 +08:00
tigerenwork 55d8b50f1d fix: 增强配置容错与启动稳定性,优化错误状态交互 2026-07-05 20:25:06 +08:00
tigerenwork 0ce557ac8e feat: add customer field to Bug model with configurable mapping
- Bug model: added optional 'customer' property
- FieldMappings: added 'customerField' (default: 客户名称)
- BugMapper: reads customer value from configured column
- BugRow: displays customer in blue when present
- Settings: Customer field text field in Field Mappings section

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-29 20:50:46 +08:00
tigerenwork d9d8ce3e46 feat: full macOS menu bar app implementation
SwiftUI macOS menu bar app for tracking Feishu Bitable bugs:
- Menu bar icon with active bug count badge
- Popover with bug list sorted by priority, click to open in Feishu
- Floating always-on-top widget (NSPanel, optional)
- OAuth 2.0 flow with Feishu Open API (user_access_token + refresh)
- PollerService with configurable interval (default 5 min)
- Diff engine detecting new bugs, status/priority/assignee changes
- Native macOS notifications (UserNotifications framework)
- Keychain-backed token storage
- Settings window with field mapping, polling interval, widget toggle
- Support for custom Bitable column name mappings
- Zero third-party dependencies

17 source files across Models/Services/Views/ViewModels/Utils layers.
Xcode project generated via scripts/generate_xcode_project.py.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 20:56:44 +08:00