safishamsi and Claude Opus 4.8
2ba07e84e1
fix(export): guard to_canvas against dangling community members ( #1236 follow-up)
...
The #1236 fix guarded to_obsidian's member loop but not to_canvas, so
`graphify export obsidian` (which also writes graph.canvas) still crashed with
KeyError on a community member id absent from G — after the notes exported,
leaving a partial mirror. Reported on 0.9.5 by @swells808.
Apply the same `m in G and m in node_filenames` filter in both to_canvas loops:
the box-sizing loop (so the group box matches the cards actually laid out) and
the card-layout loop (so the sort/label deref and the node_filenames fallback
never touch a dangling id). Regression test added alongside the to_obsidian one.
Full suite 2872.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 18:34:41 +01:00
..
2026-07-01 16:36:53 +01:00
2026-06-27 23:57:39 +01:00
2026-06-23 17:26:49 +01:00
2026-07-01 11:14:48 +01:00
2026-06-28 17:52:34 +01:00
2026-06-29 13:14:37 +01:00
2026-07-01 15:09:42 +01:00
2026-07-02 22:29:30 +01:00
2026-07-02 22:29:29 +01:00
2026-07-01 11:52:50 +01:00
2026-07-01 10:49:43 +01:00
2026-06-30 18:30:05 +01:00
2026-07-02 23:25:54 +01:00
2026-06-30 19:32:10 +01:00
2026-07-01 10:47:10 +01:00
2026-07-02 22:29:32 +01:00
2026-06-26 10:23:10 +01:00
2026-06-30 11:19:54 +01:00
2026-06-30 11:19:54 +01:00
2026-06-28 16:17:21 +01:00
2026-07-02 22:29:32 +01:00
2026-06-28 16:57:00 +01:00
2026-06-28 16:57:00 +01:00
2026-06-18 01:55:56 +01:00
2026-07-02 11:50:12 +01:00
2026-06-30 16:58:23 +01:00
2026-06-18 22:55:44 +01:00
2026-07-02 22:29:32 +01:00
2026-06-28 19:29:51 +01:00
2026-06-30 23:26:13 +01:00
2026-07-01 10:30:47 +01:00
2026-07-01 11:43:05 +01:00
2026-06-24 11:43:13 +01:00
2026-06-29 10:01:06 +01:00
2026-06-23 00:18:47 +01:00
2026-06-28 19:05:09 +01:00
2026-06-30 09:42:49 +01:00
2026-06-18 22:50:52 +01:00
2026-06-27 10:19:15 +01:00
2026-06-29 09:40:22 +01:00
2026-07-01 16:36:53 +01:00
2026-06-29 09:45:03 +01:00
2026-07-02 22:29:30 +01:00
2026-06-19 10:25:09 +01:00
2026-07-02 11:25:51 +01:00
2026-07-01 13:45:53 +01:00
2026-07-03 18:34:41 +01:00
2026-06-30 16:59:16 +01:00
2026-06-25 20:33:00 +01:00
2026-06-30 12:57:33 +01:00
2026-06-30 11:19:54 +01:00
2026-06-29 09:40:22 +01:00
2026-06-22 17:02:29 +01:00
2026-06-30 16:58:23 +01:00
2026-07-03 00:32:24 +01:00
2026-07-02 12:11:51 +01:00
2026-07-03 10:14:57 +01:00
2026-06-30 23:15:52 +01:00
2026-06-29 10:01:06 +01:00
2026-07-02 11:46:22 +01:00
2026-06-30 16:59:16 +01:00
2026-07-02 22:38:29 +01:00
2026-07-02 22:38:28 +01:00
2026-07-02 22:29:32 +01:00
2026-07-02 22:38:29 +01:00
2026-07-03 16:03:18 +01:00
2026-07-02 22:29:31 +01:00
2026-06-24 08:54:11 +01:00
2026-06-26 10:20:53 +01:00
2026-07-03 10:30:27 +01:00
2026-06-23 17:26:49 +01:00
2026-06-27 10:19:15 +01:00