m pushed to main at m/projax 2026-05-22 10:07:31 +00:00
07d88c14e5 Merge branch 'mai/knuth/phase-5e-calendar' (phase 5e slice B: polish + mobile + design doc)
28ac919e01 feat(calendar): polish grid styling + mobile breakpoint + design doc
Compare 2 commits »
m pushed to main at m/projax 2026-05-22 10:01:12 +00:00
45e3e2a891 Merge branch 'mai/knuth/phase-5e-calendar' (phase 5e slice A: month-grid calendar view)
e5dd31144a feat(calendar): /calendar month-grid view with VEVENT/VTODO/DOC sources
Compare 2 commits »
m pushed to main at m/projax 2026-05-22 09:51:03 +00:00
76efdbeb73 Merge branch 'mai/knuth/phase-5d-mcp-errors' (phase 5d slice B: ValidationError surfaces via .error.data)
8370454b66 refactor(mcp): typed ValidationError surfaces via .error.data
Compare 2 commits »
m pushed to main at m/projax 2026-05-22 09:47:39 +00:00
de1140a0f0 Merge branch 'mai/knuth/phase-5d-mcp-errors' (phase 5d slice A: widen ToolHandler signature)
d7438ba89e refactor(mcp): widen ToolHandler signature to return *ToolError with .data support
Compare 2 commits »
m pushed to main at m/projax 2026-05-22 09:37:08 +00:00
982481c023 Merge branch 'mai/knuth/phase-5f-fix-dockerignore' (phase 5f: .dockerignore fix for healthz SHA)
7ebd435044 fix(docker): include .git in build context so healthz reports real SHA
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:37:43 +00:00
3fbf71f7b3 Merge branch 'mai/knuth/phase-5c-itemwrite' (phase 5c slice C: MCP write tools validate)
63efc23843 refactor(mcp): validate item writes via internal/itemwrite/
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:36:22 +00:00
c84a1f9d4b Merge branch 'mai/knuth/phase-5c-itemwrite' (phase 5c slice B: web write paths validate)
9ee26002f8 refactor(web): validate item writes via internal/itemwrite/
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:34:01 +00:00
4cc5191eed Merge branch 'mai/knuth/phase-5c-itemwrite' (phase 5c slice A: internal/itemwrite/)
df65e4b586 feat(itemwrite): introduce internal/itemwrite/ validator
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:27:16 +00:00
062feea96f Merge branch 'mai/knuth/phase-5b-cache' (phase 5b slice C: timelineCache → cache.TTLCache)
d518978edb refactor(timeline): cache via internal/cache.TTLCache
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:25:19 +00:00
66cd46220a Merge branch 'mai/knuth/phase-5b-cache' (phase 5b slice B: dashboardCache → cache.TTLCache)
085e672dd5 refactor(dashboard): cache via internal/cache.TTLCache
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:23:56 +00:00
cda0f1b9c7 Merge branch 'mai/knuth/phase-5b-cache' (phase 5b slice A: internal/cache/)
599d9a5bb0 feat(cache): introduce internal/cache/ TTLCache[V]
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:17:39 +00:00
92e2ce8c12 Merge branch 'mai/knuth/phase-5a-extract' (fix(mcp): expand empty kinds)
9e0e2a1d13 fix(mcp): expand empty kinds to all four before timeline_exclude filter
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:15:44 +00:00
f25d0e55d7 Merge branch 'mai/knuth/phase-5a-extract' (docs: aggregator plan MCP filter footnote)
669db1451d docs(aggregate): record MCP filter-parity footnote post-slice-D
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:15:14 +00:00
bd8e04f61c Merge branch 'mai/knuth/phase-5a-extract' (phase 5a slice D: mcp → aggregate, kill TimelineBuilder)
825894f511 refactor(mcp): wire aggregator directly, drop TimelineBuilder seam
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:07:38 +00:00
354753791d Merge branch 'mai/knuth/phase-5a-extract' (phase 5a slice C: dashboard → aggregate)
ea0fb21069 refactor(dashboard): consume internal/aggregate/
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 22:05:22 +00:00
5e9ea881c1 Merge branch 'mai/knuth/phase-5a-extract' (phase 5a slice B: timeline → aggregate)
4e919babed refactor(timeline): consume internal/aggregate/
Compare 2 commits »
m pushed to main at m/projax 2026-05-21 21:58:46 +00:00
5b96d85f76 Merge branch 'mai/knuth/phase-5a-extract' (phase 5a slice A: internal/aggregate/)
326f4c83b9 feat(aggregate): introduce internal/aggregate/ for fan-out + day-grouping
Compare 2 commits »
m pushed to main at m/paliad 2026-05-21 20:03:20 +00:00
28de2e56d0 Merge: t-paliad-233 — print views default portrait + landscape opt-ins
af073f87da fix(print): default to portrait, opt-in landscape for wide surfaces (t-paliad-233)
Compare 2 commits »
m pushed to mai/knuth/coder-print-views at m/paliad 2026-05-21 20:01:51 +00:00
af073f87da fix(print): default to portrait, opt-in landscape for wide surfaces (t-paliad-233)
m created branch mai/knuth/coder-print-views in m/paliad 2026-05-21 20:01:51 +00:00