Add side panels, task selection, graph animation, and project docs

- Foldable left panel (user profile) and right panel (task details)
- Clicking a task in the list or graph node selects it and shows details
- Both views (task list + graph) always mounted via absolute inset-0 for
  correct canvas dimensions; tabs toggle visibility with opacity
- Graph node selection animation: other nodes repel outward (charge -600),
  then selected node smoothly slides to center (500ms cubic ease-out),
  then charge restores to -120 and graph stabilizes
- Graph re-fits on tab switch and panel resize via ResizeObserver
- Fix UUID string IDs throughout (backend returns UUIDs, not integers)
- Add TaskDetailPanel, UserPanel components
- Add CLAUDE.md project documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alvis
2026-04-08 11:23:06 +00:00
parent 5c7edd4bbc
commit f1d51b8cc8
23998 changed files with 3242708 additions and 0 deletions

View File

@@ -0,0 +1 @@
{"rustc":5391851738765093524,"features":"[\"default\", \"pretty-assertions\"]","declared_features":"[\"default\", \"msgpack\", \"pretty-assertions\", \"yaml\"]","target":1999684334358351018,"profile":15657897354478470176,"path":13393747337792090781,"deps":[[1528297757488249563,"url",false,4346602663945371319],[1770175401655680863,"auto_future",false,14625374293204477837],[2620434475832828286,"http",false,12178800335506446277],[3601586811267292532,"tower",false,18038603649231531543],[3626672138398771397,"hyper",false,4754227432821557856],[3666196340704888985,"smallvec",false,6999625528918773204],[3870702314125662939,"bytes",false,2709368896986884538],[4891297352905791595,"axum",false,1806282359723396856],[9278515158990611354,"rust_multipart_rfc7578_2",false,16754520526401019626],[10229185211513642314,"mime",false,10010972161496507110],[11976082518617474977,"hyper_util",false,11137536502163805979],[12478428894219133322,"anyhow",false,12666174154364178144],[13548984313718623784,"serde",false,13993743657434939901],[13795362694956882968,"serde_json",false,14792315538488301761],[14483443567775487101,"reserve_port",false,2152609931759034798],[16542808166767769916,"serde_urlencoded",false,12038355261165830975],[16611674984963787466,"async_trait",false,2731644665191694248],[16727543399706004146,"cookie",false,3465696580324336833],[16900715236047033623,"http_body_util",false,13695458902152294853],[17541620359049798014,"tokio",false,6352395554011230797],[17811409749869794184,"pretty_assertions",false,2595604308830274304]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/axum-test-38ee43f555c643d8/dep-lib-axum_test","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}