Commit bead873
refactor(web-ui): UI polish, static URL, skills redesign, and v0.0.35 bump (#170)
* chore: revert version to 0.0.34 after npm unpublish
* refactor(web-ui): redesign Usage tab with "River of Time" aesthetic
- Merge current session bar with hero metrics for unified focus
- Replace bar chart with SVG bezier curve wave visualization
- Add automatic delta calculation (7d vs prior 7d, 30d vs prior 30d)
- Redesign empty states with animated SVG illustrations
- Simplify list views with bullet-point compact style
- Enhance color system with delta indicators and heatmap levels
* fix(web-ui): resolve /web-ui/ 404 and duplicate path issues
- Server: handle /web-ui/ requests by returning index.html
- Server: explicitly serve index.html for /web-ui/index.html requests
- Client: normalize URL on mount to fix /web-ui/web-ui/ duplicates
- Client: redirect /web-ui/ and /web-ui/index.html to /web-ui
Fixes the issue where refreshing in sessions tab caused
URL to become /web-ui/web-ui/index.html
* fix(web-ui): strengthen URL normalization to handle nested duplicates
- Use do-while loop to iteratively remove all /web-ui/web-ui/ patterns
- Handle edge cases like /web-ui/web-ui/web-ui/index.html
- Add additional check for /web-ui/web-ui/ prefix pattern
* test(web-ui): add URL routing and normalization tests
- Add test-web-ui-url-routing.js E2E test for server routing
- Add test-web-ui-url-normalization.mjs unit test (24 cases)
- Update test-web-ui-assets.js expectations for /web-ui/ fix
- Fix shouldReplace check logic in app.js (use originalPathname)
* refactor(web-ui): remove /web-ui route, use / as single entry point
- Server: /web-ui, /web-ui/, /web-ui/index.html now return 404
- Root path / is the only HTML entry point
- Client: auto-redirect from /web-ui/* to / with hash/params preserved
- Assets still served at /web-ui/app.js, /web-ui/styles.css, etc.
- Simplified routing logic, removed redundant path handling
* feat(web): hide local provider in codex/claude config mode
- filter out 'local' provider from displayProvidersList when configMode is codex/claude
- prevents users from selecting local provider in these apps due to existing issues
- other modes (terminal) remain unaffected
* feat(web): disable local provider in codex/claude config mode
- local provider card shows as disabled (50% opacity, non-clickable) in codex mode
- claude-local bridge card shows as disabled in claude mode
- adds CSS .card.disabled style with pointer-events: none
- cards remain visible but cannot be selected
* fix(web): correct disabled provider click logic
- fix operator precedence issue in click handlers
- use proper ternary expressions with correct grouping
- prevents white screen error on config load
* fix(web): remove parentheses from computed property
- isLocalProviderDisabled is a computed returning boolean, not a function
- should be accessed as property without () in template
- fixes white screen error on config load
* feat(web): rename claude-local to local with system badge
- display name changed from 'claude-local' to 'local'
- adds system badge like codex provider readonly indicator
- internal id 'claude-local' remains unchanged for compatibility
* feat(web): remove local provider subtitle hint
- removes '勾选参与负载均衡的提供商' subtitle
- keeps card layout cleaner with just title and system badge
* refactor(web): redesign skills tab to minimalist single-column layout
- Remove cluttered overview section with 6 stat cards
- Consolidate header with inline target switcher
- Single-column flow layout for better mobile experience
- Add count badges directly in panel headers
- Add quick action buttons in import panel
- Add individual import button for each skill
- Remove help panel (content available elsewhere)
- Remove root path display (moved to tooltip)
- Preserve all functionality while reducing visual noise
Design principles:
- Progressive disclosure: scroll to discover
- Large touch targets: 56px min height
- Visual hierarchy: clear content grouping
- Cleaner information architecture
* refactor(web): implement static URL, always stay at /
- Remove all URL routing, URL stays as pure '/'
- Delete query parameters and hash from browser address bar
- Remove history.pushState/replaceState operations for tab switching
- Remove session filter URL synchronization
- Share links still work (generate URL with params for clipboard)
- When opening share link, params are applied then URL cleaned
- All state managed via memory + localStorage
Changes:
- app.js: Clean URL on mount, remove resource path fix logic
- app.methods.navigation.mjs: Remove URL operations in switchMainTab
- sessions-filters-url.mjs: Empty syncSessionsFilterUrl, fix share URL base
- app.methods.session-browser.mjs: Clean URL after applying URL state
* chore: bump version to 0.0.35
* fix(ci): restore missing CI scripts in package.json
* test: update unit tests to match new web-ui structure
- Fix sessionUsageDaily -> sessionUsageHourlyHeatmap assertion
- Remove obsolete loadSkillsMarketOverview and market-action-grid checks
- Update skills-target-chip selector (was market-target-chip)
- Fix provider card disabled state and tabindex assertions
- Remove market.pill importableDirect/importMissing checks
* test: add new keys to parity baseline allowlists
- isLocalProviderDisabled (data key)
- sessionUsageWave, sessionsUsageSelectedDay, usageHeroDelta, usageHeroDeltaClass (computed keys)
* test: add more usage hero keys to parity baseline
- usageHeroMainValue
- usageHeroSubLabel
* test: fix isLocalProviderDisabled key type
Move isLocalProviderDisabled from data keys to computed keys
as it is defined as a computed property in app.computed.dashboard.mjs
* fix(web-ui): canonicalize session tab navigation URL
* fix: stabilize web ui navigation and canonical urls
* fix: avoid runtime vue compiler dependency
* fix: preserve sessions tab render on navigation
---------
Co-authored-by: ymkiux <ymkiux@users.noreply.github.com>
Co-authored-by: awsl233777 <awsl233777@gmail.com>1 parent aa3434d commit bead873
43 files changed
Lines changed: 11078 additions & 736 deletions
File tree
- tests
- e2e
- unit
- web-ui
- modules
- partials/index
- res
- styles
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10058 | 10058 | | |
10059 | 10059 | | |
10060 | 10060 | | |
10061 | | - | |
| 10061 | + | |
10062 | 10062 | | |
10063 | 10063 | | |
| 10064 | + | |
10064 | 10065 | | |
10065 | 10066 | | |
10066 | 10067 | | |
| |||
10620 | 10621 | | |
10621 | 10622 | | |
10622 | 10623 | | |
10623 | | - | |
| 10624 | + | |
10624 | 10625 | | |
10625 | 10626 | | |
10626 | 10627 | | |
| |||
10649 | 10650 | | |
10650 | 10651 | | |
10651 | 10652 | | |
10652 | | - | |
10653 | | - | |
10654 | | - | |
10655 | | - | |
| 10653 | + | |
10656 | 10654 | | |
10657 | 10655 | | |
10658 | 10656 | | |
10659 | | - | |
10660 | | - | |
| 10657 | + | |
10661 | 10658 | | |
10662 | 10659 | | |
10663 | | - | |
10664 | | - | |
10665 | | - | |
10666 | | - | |
10667 | | - | |
10668 | | - | |
10669 | | - | |
10670 | | - | |
10671 | | - | |
10672 | | - | |
10673 | | - | |
10674 | | - | |
10675 | | - | |
10676 | | - | |
10677 | | - | |
10678 | | - | |
10679 | | - | |
| 10660 | + | |
| 10661 | + | |
10680 | 10662 | | |
10681 | 10663 | | |
10682 | 10664 | | |
| |||
11408 | 11390 | | |
11409 | 11391 | | |
11410 | 11392 | | |
11411 | | - | |
11412 | | - | |
11413 | | - | |
11414 | | - | |
11415 | | - | |
11416 | | - | |
11417 | | - | |
11418 | | - | |
| 11393 | + | |
| 11394 | + | |
| 11395 | + | |
| 11396 | + | |
| 11397 | + | |
| 11398 | + | |
| 11399 | + | |
| 11400 | + | |
| 11401 | + | |
| 11402 | + | |
11419 | 11403 | | |
| 11404 | + | |
11420 | 11405 | | |
11421 | 11406 | | |
11422 | 11407 | | |
| |||
11425 | 11410 | | |
11426 | 11411 | | |
11427 | 11412 | | |
| 11413 | + | |
| 11414 | + | |
| 11415 | + | |
| 11416 | + | |
| 11417 | + | |
| 11418 | + | |
| 11419 | + | |
| 11420 | + | |
11428 | 11421 | | |
11429 | 11422 | | |
11430 | 11423 | | |
11431 | 11424 | | |
11432 | | - | |
| 11425 | + | |
| 11426 | + | |
| 11427 | + | |
| 11428 | + | |
11433 | 11429 | | |
11434 | 11430 | | |
11435 | 11431 | | |
| |||
11456 | 11452 | | |
11457 | 11453 | | |
11458 | 11454 | | |
11459 | | - | |
| 11455 | + | |
| 11456 | + | |
| 11457 | + | |
| 11458 | + | |
11460 | 11459 | | |
11461 | 11460 | | |
11462 | 11461 | | |
| |||
11517 | 11516 | | |
11518 | 11517 | | |
11519 | 11518 | | |
11520 | | - | |
| 11519 | + | |
| 11520 | + | |
| 11521 | + | |
| 11522 | + | |
11521 | 11523 | | |
11522 | 11524 | | |
11523 | | - | |
11524 | | - | |
11525 | | - | |
11526 | | - | |
11527 | | - | |
11528 | | - | |
| 11525 | + | |
| 11526 | + | |
| 11527 | + | |
| 11528 | + | |
| 11529 | + | |
| 11530 | + | |
| 11531 | + | |
| 11532 | + | |
| 11533 | + | |
| 11534 | + | |
| 11535 | + | |
| 11536 | + | |
| 11537 | + | |
| 11538 | + | |
| 11539 | + | |
11529 | 11540 | | |
11530 | 11541 | | |
11531 | 11542 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| |||
0 commit comments