Commit History

Author SHA1 Message Date
  saddle-ClankerSaddle 7ff7320f70 Library pages on Spry: in-place editors, blast radius, reverse links, crumbs 1 day ago
  saddle-ClankerSaddle 6348585a16 Task page <-> event log unification: Overview | Log tabs 1 day ago
  saddle-ClankerSaddle 7ef73aeab5 Tasks/goals list chips and counts; create forms become dialogs 1 day ago
  saddle-Clanker-Saddle 2ff7e51e82 Centralise the canon and ethos on the web (goal 27) 4 weeks ago
  saddle-Clanker-Saddle daec26beb1 Per-saddle workspace roots: register handshake carries workspace_root, assignment paths follow the asking saddle 1 month ago
  saddle-Clanker-Saddle 6c8ae5e3b5 Merge branch 'task/8-35' into goal/toto-batch-1 1 month ago
  saddle-Clanker-Saddle 1fe5ec9d0a Add the dashboard notes scratchpad with promote-to-goal 1 month ago
  saddle-Clanker-Saddle 487db9c1da Goal link pre-fill from the primary project; stacks feature 1 month ago
  clanker cc160d76e3 Users page, profile page, role gates (admin-gated user/saddle/capability management) 1 month ago
  clanker 2d0e09d1d9 r5: harness split (arch 18) — the monolith becomes a package. test/harness.py: the FakeSaddle daemon, every shared wire helper (http/act/login/slot_public/wait_for/quiet_window/db/check, task_state/wait_task_done/create_queued/enqueue_task/saddle_api/saddle_card/http_get_page/dump_threads and friends), the per-shard fixtures (Ctx/start_bundle), and the runner (run_bundle + run_all_parallel + main) — the parallel spawn now targets the entry shim so 'harness' stays one module instance per process, and run_bundle imports the bundle module lazily (after that shard's environment exists, so star-imported runtime globals are the shard's own) then re-syncs WORK/DB_PATH/ports onto it (the sequential debug path reuses modules across shards). test/bundles/<name>.py ×11: the scenario bodies moved verbatim (bundle_X -> run(ctx)); the x7 duplicated goal_state closures collapse onto harness.goal_state, late-bound through the runner's fixture ctx so the answers/replay restart scenarios' re-logins keep working (the first cut snapped the auth at shard start and the replay redelivery scenario caught it). test/web_stack_test.py stays the meson entry (args unchanged) and the shard spawn target. The S-workstream handoff survivors verified byte-intact after the move: the goalui S2 verdict-goal pins (resolveReviewBlock/goal.open_blocks/feedback posting/extraText gating on the goal page) and the goals S3 park-second waits (strictly-newer completed_at vs suspended_at seconds under SADDLE_GOAL_RESUME_S=1). Both execution modes green: parallel shards 851/0, WEBSTACK_SEQUENTIAL 851/0. 851 checks. 1 month ago