ATlast — you'll never need to find your favorites on another platform again. Find your favs in the ATmosphere.
atproto

update build artifacs and deciduous

byarielm.fyi 19723730 cc586d28

verified
Changed files
+463 -2
dist
docs
+2 -2
dist/index.html
··· 26 26 content="black-translucent" 27 27 /> 28 28 <title>ATLast: Find Your People in the ATmosphere</title> 29 - <script type="module" crossorigin src="/assets/index-DADnBDPp.js"></script> 30 - <link rel="stylesheet" crossorigin href="/assets/index-Dd5qFkps.css"> 29 + <script type="module" crossorigin src="/assets/index-Cqs3lHBa.js"></script> 30 + <link rel="stylesheet" crossorigin href="/assets/index-Cd9fK3UQ.css"> 31 31 </head> 32 32 <body> 33 33 <div id="root"></div>
+32
docs/git-history.json
··· 1 1 [ 2 2 { 3 + "hash": "cc586d28ea8d4544467392be1083fdec11731814", 4 + "short_hash": "cc586d2", 5 + "author": "Ariel M. Lighty", 6 + "date": "2025-12-23T21:11:19-05:00", 7 + "message": "replace excessive toasts with aria-live announcer\n\nRemove redundant success/info toasts (logout, upload loaded, no results).\nKeep only error toasts for critical feedback.\nAdd AriaLiveAnnouncer component for screen reader accessibility.", 8 + "files_changed": 2 9 + }, 10 + { 11 + "hash": "ebb1e05cac477f02e1901aab6f3a8005016472f9", 12 + "short_hash": "ebb1e05", 13 + "author": "Ariel M. Lighty", 14 + "date": "2025-12-23T21:10:58-05:00", 15 + "message": "fix mobile alignment: badges and descriptions align with avatar", 16 + "files_changed": 1 17 + }, 18 + { 19 + "hash": "4c3ae0dbca215d10b499fc646ae7f53c43c658ac", 20 + "short_hash": "4c3ae0d", 21 + "author": "Ariel M. Lighty", 22 + "date": "2025-12-23T20:58:15-05:00", 23 + "message": "fix login typeahead autofill and auto-strip @ symbol\n\nTypeahead fix:\n- Add event listeners for input/change/blur to sync actor-typeahead selections with form state\n- Ensures Enter/Tab selections from typeahead dropdown properly update form\n- Allows Enter key to submit form after selection\n\n@ stripping:\n- Automatically remove leading @ from handle input\n- Show helpful inline message when @ is stripped\n- Inform users the @ symbol isn't needed", 24 + "files_changed": 1 25 + }, 26 + { 27 + "hash": "8e9efd2577b82cb61b0162a28b4ab072bbccf00b", 28 + "short_hash": "8e9efd2", 29 + "author": "Ariel M. Lighty", 30 + "date": "2025-12-23T20:57:21-05:00", 31 + "message": "update CLAUDE.md with separate commit guidance\n\nAdd critical note that each commit should address ONE specific fix or feature.\nMultiple unrelated changes should be committed separately for clearer history.", 32 + "files_changed": 1 33 + }, 34 + { 3 35 "hash": "587a9b0314546b91e00c94bf87d28d29f6527456", 4 36 "short_hash": "587a9b0", 5 37 "author": "Ariel M. Lighty",
+429
docs/graph-data.json
··· 1319 1319 "created_at": "2025-12-23T20:20:47.820117300-05:00", 1320 1320 "updated_at": "2025-12-23T20:20:47.820117300-05:00", 1321 1321 "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1322 + }, 1323 + { 1324 + "id": 121, 1325 + "change_id": "226c05bc-6da6-4343-9204-0dfb819ed57b", 1326 + "node_type": "observation", 1327 + "title": "Cleanup complete: removed all backward compatibility code (followed field, useSettings hook), updated CLAUDE.md with commit message guidelines. 120 decision nodes tracked.", 1328 + "description": null, 1329 + "status": "pending", 1330 + "created_at": "2025-12-23T20:22:30.966505200-05:00", 1331 + "updated_at": "2025-12-23T20:22:30.966505200-05:00", 1332 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1333 + }, 1334 + { 1335 + "id": 122, 1336 + "change_id": "0357c76e-2c91-46e7-941e-4466d520b8c2", 1337 + "node_type": "goal", 1338 + "title": "Fix login UX bugs and results page layout issues", 1339 + "description": null, 1340 + "status": "pending", 1341 + "created_at": "2025-12-23T20:36:38.865460900-05:00", 1342 + "updated_at": "2025-12-23T20:36:38.865460900-05:00", 1343 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90,\"prompt\":\"Various bug and small fixes are needed, some of which were introduced in commit 151f5336. Enter and tab should save the full handle from the typeahead and users should be able to hit enter again to login. Auto-strip the leading @ if entered in the handle field, with a message to the user letting them know that's not needed. The results page cards are spaced weirdly and sometimes overlap. In some cases you can't even click the \\\"show x more option(s)\\\" button because it's covered. Previously I made a fix to left-algin the follow info + user descriptions on the results to be left-algined with the avatar not the user handle on mobile; re-implement this. The toast notifications don't match well with the UI and feel excessive. Analyze which are actually needed, keeping in mind accessibility and screen readers, and suggest alternative options that don't cover important screen information; keep in mind this will primarily be used on mobile too.\"}" 1344 + }, 1345 + { 1346 + "id": 123, 1347 + "change_id": "b699928b-e0bd-45e0-8dcd-b5ab3b8945c4", 1348 + "node_type": "observation", 1349 + "title": "Commit 151f5336 added error boundaries, lazy loading, form validation, list virtualization. Broke autofill login handle (mentioned in commit message)", 1350 + "description": null, 1351 + "status": "pending", 1352 + "created_at": "2025-12-23T20:37:01.299493800-05:00", 1353 + "updated_at": "2025-12-23T20:37:01.299493800-05:00", 1354 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1355 + }, 1356 + { 1357 + "id": 124, 1358 + "change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 1359 + "node_type": "observation", 1360 + "title": "Analyzed codebase: Login uses actor-typeahead + useFormValidation hook (not syncing on Enter/Tab). Results page uses VirtualizedResultsList with estimateSize: 200px (causing overlap). Toast notifications at top-right fixed position (8 total: 2 logout, 2 login, 2 upload load, 2 follow status messages)", 1361 + "description": null, 1362 + "status": "pending", 1363 + "created_at": "2025-12-23T20:38:30.501600300-05:00", 1364 + "updated_at": "2025-12-23T20:38:30.501600300-05:00", 1365 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1366 + }, 1367 + { 1368 + "id": 125, 1369 + "change_id": "f5475891-0269-4c90-9968-baab1db0a583", 1370 + "node_type": "action", 1371 + "title": "Fixing Login.tsx: handle typeahead selection events, strip leading @, update form state", 1372 + "description": null, 1373 + "status": "pending", 1374 + "created_at": "2025-12-23T20:38:41.692719900-05:00", 1375 + "updated_at": "2025-12-23T20:38:41.692719900-05:00", 1376 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1377 + }, 1378 + { 1379 + "id": 126, 1380 + "change_id": "43dee7b4-082e-42dd-b245-4b6dec800458", 1381 + "node_type": "outcome", 1382 + "title": "Login fixes complete: typeahead syncs with form state via input/change/blur events, @ auto-stripped with helpful message", 1383 + "description": null, 1384 + "status": "pending", 1385 + "created_at": "2025-12-23T20:40:29.725356600-05:00", 1386 + "updated_at": "2025-12-23T20:40:29.725356600-05:00", 1387 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1388 + }, 1389 + { 1390 + "id": 127, 1391 + "change_id": "995ffe5d-4614-4f5f-8afc-04754bd54efc", 1392 + "node_type": "action", 1393 + "title": "Fixing VirtualizedResultsList: dynamic size estimation based on match count and expansion state", 1394 + "description": null, 1395 + "status": "pending", 1396 + "created_at": "2025-12-23T20:40:32.953580100-05:00", 1397 + "updated_at": "2025-12-23T20:40:32.953580100-05:00", 1398 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1399 + }, 1400 + { 1401 + "id": 128, 1402 + "change_id": "94d4ca47-69ed-4cbd-91b8-652936b01b98", 1403 + "node_type": "outcome", 1404 + "title": "VirtualizedResultsList fixed: dynamic size estimation based on match count and expansion state prevents overlap", 1405 + "description": null, 1406 + "status": "pending", 1407 + "created_at": "2025-12-23T20:41:06.394977600-05:00", 1408 + "updated_at": "2025-12-23T20:41:06.394977600-05:00", 1409 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1410 + }, 1411 + { 1412 + "id": 129, 1413 + "change_id": "12e7e24a-6730-4d3b-9a0f-220e35aacb7f", 1414 + "node_type": "action", 1415 + "title": "Re-implementing mobile left-align: follow stats and descriptions align with avatar edge on mobile", 1416 + "description": null, 1417 + "status": "pending", 1418 + "created_at": "2025-12-23T20:41:09.306543800-05:00", 1419 + "updated_at": "2025-12-23T20:41:09.306543800-05:00", 1420 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1421 + }, 1422 + { 1423 + "id": 130, 1424 + "change_id": "a83f4dba-ec0c-41c6-b51c-a8347d600f3c", 1425 + "node_type": "outcome", 1426 + "title": "Mobile layout fixed: badges/stats and descriptions now align with avatar edge (pl-0) on mobile, indent on desktop (md:pl-[60px])", 1427 + "description": null, 1428 + "status": "pending", 1429 + "created_at": "2025-12-23T20:41:57.894282800-05:00", 1430 + "updated_at": "2025-12-23T20:41:57.894282800-05:00", 1431 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1432 + }, 1433 + { 1434 + "id": 131, 1435 + "change_id": "7d0d2907-6dfc-4160-9d5a-1114fca7924a", 1436 + "node_type": "action", 1437 + "title": "Analyzing toast notification usage and creating recommendation for mobile-friendly alternatives", 1438 + "description": null, 1439 + "status": "pending", 1440 + "created_at": "2025-12-23T20:42:00.888543-05:00", 1441 + "updated_at": "2025-12-23T20:42:00.888543-05:00", 1442 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1443 + }, 1444 + { 1445 + "id": 132, 1446 + "change_id": "b66ab07d-5c6c-443b-a6bb-1738f45911f8", 1447 + "node_type": "decision", 1448 + "title": "Choose toast notification strategy: Keep all with mobile positioning vs Reduce to errors only vs Inline contextual messages vs Bottom sheet notifications", 1449 + "description": null, 1450 + "status": "pending", 1451 + "created_at": "2025-12-23T20:42:11.073767900-05:00", 1452 + "updated_at": "2025-12-23T20:42:11.073767900-05:00", 1453 + "metadata_json": "{\"branch\":\"master\",\"confidence\":85}" 1454 + }, 1455 + { 1456 + "id": 133, 1457 + "change_id": "88f7884c-cde3-4f41-aa78-10065619517f", 1458 + "node_type": "outcome", 1459 + "title": "User chose inline contextual messages: keep only error toasts (login, logout, upload load), remove success/info toasts, add invisible aria-live regions", 1460 + "description": null, 1461 + "status": "pending", 1462 + "created_at": "2025-12-23T20:46:17.007983500-05:00", 1463 + "updated_at": "2025-12-23T20:46:17.007983500-05:00", 1464 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1465 + }, 1466 + { 1467 + "id": 134, 1468 + "change_id": "32d6f48c-48cb-41cc-8b0e-fe270dd070e2", 1469 + "node_type": "action", 1470 + "title": "Implementing inline feedback system: removing redundant toasts, keeping error-only toasts, adding invisible aria-live announcer", 1471 + "description": null, 1472 + "status": "pending", 1473 + "created_at": "2025-12-23T20:46:20.532190700-05:00", 1474 + "updated_at": "2025-12-23T20:46:20.532190700-05:00", 1475 + "metadata_json": "{\"branch\":\"master\",\"confidence\":90}" 1476 + }, 1477 + { 1478 + "id": 135, 1479 + "change_id": "1c3644b9-0c3a-499b-b34a-79aad9682702", 1480 + "node_type": "outcome", 1481 + "title": "Toast notification refactor complete: removed 3 redundant toasts (logout success, upload success, no results info), kept errors only, added AriaLiveAnnouncer for screen reader accessibility. Build passes.", 1482 + "description": null, 1483 + "status": "pending", 1484 + "created_at": "2025-12-23T20:53:30.408923500-05:00", 1485 + "updated_at": "2025-12-23T20:53:30.408923500-05:00", 1486 + "metadata_json": "{\"branch\":\"master\",\"confidence\":95}" 1487 + }, 1488 + { 1489 + "id": 136, 1490 + "change_id": "442a6396-4f7f-4f05-9d19-762d4b9f9896", 1491 + "node_type": "action", 1492 + "title": "Committing CLAUDE.md update with separate commit guidance", 1493 + "description": null, 1494 + "status": "pending", 1495 + "created_at": "2025-12-23T20:57:23.825052400-05:00", 1496 + "updated_at": "2025-12-23T20:57:23.825052400-05:00", 1497 + "metadata_json": "{\"branch\":\"master\",\"commit\":\"8e9efd2\",\"confidence\":95}" 1498 + }, 1499 + { 1500 + "id": 137, 1501 + "change_id": "11e99520-1e49-4fce-be63-7f3af3523f6f", 1502 + "node_type": "outcome", 1503 + "title": "Committed login typeahead and @ stripping fixes", 1504 + "description": null, 1505 + "status": "pending", 1506 + "created_at": "2025-12-23T20:58:17.828634400-05:00", 1507 + "updated_at": "2025-12-23T20:58:17.828634400-05:00", 1508 + "metadata_json": "{\"branch\":\"master\",\"commit\":\"4c3ae0d\",\"confidence\":95}" 1509 + }, 1510 + { 1511 + "id": 138, 1512 + "change_id": "f3687af3-fa58-424f-89e3-9e64d18322c9", 1513 + "node_type": "outcome", 1514 + "title": "Committed results page card spacing fix", 1515 + "description": null, 1516 + "status": "pending", 1517 + "created_at": "2025-12-23T21:10:27.704228-05:00", 1518 + "updated_at": "2025-12-23T21:10:27.704228-05:00", 1519 + "metadata_json": "{\"branch\":\"master\",\"commit\":\"4c3ae0d\",\"confidence\":95}" 1520 + }, 1521 + { 1522 + "id": 139, 1523 + "change_id": "79bc3a4c-d528-451b-8706-66e8aa7f50ff", 1524 + "node_type": "outcome", 1525 + "title": "Committed mobile alignment fix", 1526 + "description": null, 1527 + "status": "pending", 1528 + "created_at": "2025-12-23T21:11:00.152727100-05:00", 1529 + "updated_at": "2025-12-23T21:11:00.152727100-05:00", 1530 + "metadata_json": "{\"branch\":\"master\",\"commit\":\"ebb1e05\",\"confidence\":95}" 1531 + }, 1532 + { 1533 + "id": 140, 1534 + "change_id": "45efeea7-9759-405c-9ab4-568cfb7f083c", 1535 + "node_type": "outcome", 1536 + "title": "Committed toast notification refactor", 1537 + "description": null, 1538 + "status": "pending", 1539 + "created_at": "2025-12-23T21:11:21.224146800-05:00", 1540 + "updated_at": "2025-12-23T21:11:21.224146800-05:00", 1541 + "metadata_json": "{\"branch\":\"master\",\"commit\":\"cc586d2\",\"confidence\":95}" 1322 1542 } 1323 1543 ], 1324 1544 "edges": [ ··· 2608 2828 "weight": 1.0, 2609 2829 "rationale": "Outcome of removing backward compat hook", 2610 2830 "created_at": "2025-12-23T20:20:49.325863400-05:00" 2831 + }, 2832 + { 2833 + "id": 118, 2834 + "from_node_id": 120, 2835 + "to_node_id": 121, 2836 + "from_change_id": "d982f0be-e0bd-43db-bb6e-96129ca4561d", 2837 + "to_change_id": "226c05bc-6da6-4343-9204-0dfb819ed57b", 2838 + "edge_type": "leads_to", 2839 + "weight": 1.0, 2840 + "rationale": "Final observation for cleanup session", 2841 + "created_at": "2025-12-23T20:22:32.411718300-05:00" 2842 + }, 2843 + { 2844 + "id": 119, 2845 + "from_node_id": 122, 2846 + "to_node_id": 123, 2847 + "from_change_id": "0357c76e-2c91-46e7-941e-4466d520b8c2", 2848 + "to_change_id": "b699928b-e0bd-45e0-8dcd-b5ab3b8945c4", 2849 + "edge_type": "leads_to", 2850 + "weight": 1.0, 2851 + "rationale": "Understanding what changed in 151f5336", 2852 + "created_at": "2025-12-23T20:37:02.757223400-05:00" 2853 + }, 2854 + { 2855 + "id": 120, 2856 + "from_node_id": 122, 2857 + "to_node_id": 124, 2858 + "from_change_id": "0357c76e-2c91-46e7-941e-4466d520b8c2", 2859 + "to_change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 2860 + "edge_type": "leads_to", 2861 + "weight": 1.0, 2862 + "rationale": "Analysis of current implementation issues", 2863 + "created_at": "2025-12-23T20:38:31.895716500-05:00" 2864 + }, 2865 + { 2866 + "id": 121, 2867 + "from_node_id": 124, 2868 + "to_node_id": 125, 2869 + "from_change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 2870 + "to_change_id": "f5475891-0269-4c90-9968-baab1db0a583", 2871 + "edge_type": "leads_to", 2872 + "weight": 1.0, 2873 + "rationale": "First fix to implement", 2874 + "created_at": "2025-12-23T20:38:43.158707100-05:00" 2875 + }, 2876 + { 2877 + "id": 122, 2878 + "from_node_id": 125, 2879 + "to_node_id": 126, 2880 + "from_change_id": "f5475891-0269-4c90-9968-baab1db0a583", 2881 + "to_change_id": "43dee7b4-082e-42dd-b245-4b6dec800458", 2882 + "edge_type": "leads_to", 2883 + "weight": 1.0, 2884 + "rationale": "Implementation successful", 2885 + "created_at": "2025-12-23T20:40:31.302734-05:00" 2886 + }, 2887 + { 2888 + "id": 123, 2889 + "from_node_id": 124, 2890 + "to_node_id": 127, 2891 + "from_change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 2892 + "to_change_id": "995ffe5d-4614-4f5f-8afc-04754bd54efc", 2893 + "edge_type": "leads_to", 2894 + "weight": 1.0, 2895 + "rationale": "Next fix to implement", 2896 + "created_at": "2025-12-23T20:40:34.451048200-05:00" 2897 + }, 2898 + { 2899 + "id": 124, 2900 + "from_node_id": 127, 2901 + "to_node_id": 128, 2902 + "from_change_id": "995ffe5d-4614-4f5f-8afc-04754bd54efc", 2903 + "to_change_id": "94d4ca47-69ed-4cbd-91b8-652936b01b98", 2904 + "edge_type": "leads_to", 2905 + "weight": 1.0, 2906 + "rationale": "Implementation successful", 2907 + "created_at": "2025-12-23T20:41:07.800487200-05:00" 2908 + }, 2909 + { 2910 + "id": 125, 2911 + "from_node_id": 124, 2912 + "to_node_id": 129, 2913 + "from_change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 2914 + "to_change_id": "12e7e24a-6730-4d3b-9a0f-220e35aacb7f", 2915 + "edge_type": "leads_to", 2916 + "weight": 1.0, 2917 + "rationale": "Next fix to implement", 2918 + "created_at": "2025-12-23T20:41:10.753085200-05:00" 2919 + }, 2920 + { 2921 + "id": 126, 2922 + "from_node_id": 129, 2923 + "to_node_id": 130, 2924 + "from_change_id": "12e7e24a-6730-4d3b-9a0f-220e35aacb7f", 2925 + "to_change_id": "a83f4dba-ec0c-41c6-b51c-a8347d600f3c", 2926 + "edge_type": "leads_to", 2927 + "weight": 1.0, 2928 + "rationale": "Implementation successful", 2929 + "created_at": "2025-12-23T20:41:59.353654-05:00" 2930 + }, 2931 + { 2932 + "id": 127, 2933 + "from_node_id": 124, 2934 + "to_node_id": 131, 2935 + "from_change_id": "5852a83b-88bb-4938-ae0b-c2791a7bdeba", 2936 + "to_change_id": "7d0d2907-6dfc-4160-9d5a-1114fca7924a", 2937 + "edge_type": "leads_to", 2938 + "weight": 1.0, 2939 + "rationale": "Final fix to analyze", 2940 + "created_at": "2025-12-23T20:42:02.433228600-05:00" 2941 + }, 2942 + { 2943 + "id": 128, 2944 + "from_node_id": 131, 2945 + "to_node_id": 132, 2946 + "from_change_id": "7d0d2907-6dfc-4160-9d5a-1114fca7924a", 2947 + "to_change_id": "b66ab07d-5c6c-443b-a6bb-1738f45911f8", 2948 + "edge_type": "leads_to", 2949 + "weight": 1.0, 2950 + "rationale": "Analysis complete, presenting options", 2951 + "created_at": "2025-12-23T20:42:12.649645800-05:00" 2952 + }, 2953 + { 2954 + "id": 129, 2955 + "from_node_id": 132, 2956 + "to_node_id": 133, 2957 + "from_change_id": "b66ab07d-5c6c-443b-a6bb-1738f45911f8", 2958 + "to_change_id": "88f7884c-cde3-4f41-aa78-10065619517f", 2959 + "edge_type": "leads_to", 2960 + "weight": 1.0, 2961 + "rationale": "User decision", 2962 + "created_at": "2025-12-23T20:46:18.786053200-05:00" 2963 + }, 2964 + { 2965 + "id": 130, 2966 + "from_node_id": 133, 2967 + "to_node_id": 134, 2968 + "from_change_id": "88f7884c-cde3-4f41-aa78-10065619517f", 2969 + "to_change_id": "32d6f48c-48cb-41cc-8b0e-fe270dd070e2", 2970 + "edge_type": "leads_to", 2971 + "weight": 1.0, 2972 + "rationale": "Implementation based on decision", 2973 + "created_at": "2025-12-23T20:46:22.116041400-05:00" 2974 + }, 2975 + { 2976 + "id": 131, 2977 + "from_node_id": 134, 2978 + "to_node_id": 135, 2979 + "from_change_id": "32d6f48c-48cb-41cc-8b0e-fe270dd070e2", 2980 + "to_change_id": "1c3644b9-0c3a-499b-b34a-79aad9682702", 2981 + "edge_type": "leads_to", 2982 + "weight": 1.0, 2983 + "rationale": "Implementation successful", 2984 + "created_at": "2025-12-23T20:53:32.109691600-05:00" 2985 + }, 2986 + { 2987 + "id": 132, 2988 + "from_node_id": 122, 2989 + "to_node_id": 136, 2990 + "from_change_id": "0357c76e-2c91-46e7-941e-4466d520b8c2", 2991 + "to_change_id": "442a6396-4f7f-4f05-9d19-762d4b9f9896", 2992 + "edge_type": "leads_to", 2993 + "weight": 1.0, 2994 + "rationale": "Documentation update", 2995 + "created_at": "2025-12-23T20:57:25.902405300-05:00" 2996 + }, 2997 + { 2998 + "id": 133, 2999 + "from_node_id": 126, 3000 + "to_node_id": 137, 3001 + "from_change_id": "43dee7b4-082e-42dd-b245-4b6dec800458", 3002 + "to_change_id": "11e99520-1e49-4fce-be63-7f3af3523f6f", 3003 + "edge_type": "leads_to", 3004 + "weight": 1.0, 3005 + "rationale": "Committed to git", 3006 + "created_at": "2025-12-23T20:58:19.430183700-05:00" 3007 + }, 3008 + { 3009 + "id": 134, 3010 + "from_node_id": 128, 3011 + "to_node_id": 138, 3012 + "from_change_id": "94d4ca47-69ed-4cbd-91b8-652936b01b98", 3013 + "to_change_id": "f3687af3-fa58-424f-89e3-9e64d18322c9", 3014 + "edge_type": "leads_to", 3015 + "weight": 1.0, 3016 + "rationale": "Committed to git", 3017 + "created_at": "2025-12-23T21:10:29.304486700-05:00" 3018 + }, 3019 + { 3020 + "id": 135, 3021 + "from_node_id": 130, 3022 + "to_node_id": 139, 3023 + "from_change_id": "a83f4dba-ec0c-41c6-b51c-a8347d600f3c", 3024 + "to_change_id": "79bc3a4c-d528-451b-8706-66e8aa7f50ff", 3025 + "edge_type": "leads_to", 3026 + "weight": 1.0, 3027 + "rationale": "Committed to git", 3028 + "created_at": "2025-12-23T21:11:01.683361600-05:00" 3029 + }, 3030 + { 3031 + "id": 136, 3032 + "from_node_id": 135, 3033 + "to_node_id": 140, 3034 + "from_change_id": "1c3644b9-0c3a-499b-b34a-79aad9682702", 3035 + "to_change_id": "45efeea7-9759-405c-9ab4-568cfb7f083c", 3036 + "edge_type": "leads_to", 3037 + "weight": 1.0, 3038 + "rationale": "Committed to git", 3039 + "created_at": "2025-12-23T21:11:22.724479-05:00" 2611 3040 } 2612 3041 ] 2613 3042 }