Histórico de Commits

Autor SHA1 Mensagem Data
  saddle-Clanker-Saddle 2a9f9cc504 Add the project Understanding storage, callback API and assignment injection há 1 mês atrás
  Billy Barrow 7fda933cef Task log updates há 1 mês atrás
  clanker 4eccca4faa M0003 event indexes, batched chunks ingestion, LLM usage surfacing, resume failure signatures há 1 mês atrás
  Billy Barrow 64b9562f18 New nav há 1 mês atrás
  saddle-Clanker-Saddle c260259da1 Saddle goals API + yeehaw event rendering in the task log há 1 mês atrás
  saddle-Clanker-Saddle 143e8bd065 Incremental M0002 migration: upgrade serial-1 databases in place há 1 mês atrás
  saddle-Clanker-Saddle 71c595763b Per-saddle prompt notes: column, admin editor, assignment carriage há 1 mês atrás
  saddle-Clanker-Saddle 1fe5ec9d0a Add the dashboard notes scratchpad with promote-to-goal há 1 mês atrás
  saddle-Clanker-Saddle 487db9c1da Goal link pre-fill from the primary project; stacks feature há 1 mês atrás
  clanker c8660ec2d6 default seeded admin credentials to admin/change-me when SPRY_SEED_ADMIN_* are unset — a bare local run against a fresh SPRY_DB_PATH previously seeded nothing and login failed silently há 1 mês atrás
  clanker 76611653cc adopt Scope.release() (inversion f66ed87) at every create_scope() site: Dispatcher.tick(), PushService.resolve_pending()/prune_subscription() and the main.vala startup scopes (sqlite pragmas, push keys, admin seed, dispatcher start) now release their scope in a finally/teardown path — scoped instances holding references back to their scope made every request/cycle/notification graph an uncollectable cycle, so the dispatch timer, push resolution and subscription pruning leaked one object graph per pass; the astralis Pipeline release-in-finally pattern applied; 13 bundles sequential 966/0 há 1 mês atrás
  clanker d56d8e185a Plan 17 M1+M2: consolidated M0001, unified events ledger, chunks ingestion há 1 mês atrás
  clanker 4a528f3975 Force Wake: human-triggered resume of parked tasks and goals há 1 mês atrás
  clanker 0ce0a4d1ef Merge branch 'task/2-13' into goal/selfhosted-qol há 1 mês atrás
  clanker c4c089b4d7 Notifications: per-browser bell, truthful delivery, test button há 1 mês atrás
  clanker 3785e9f562 In-place Edit buttons for task mandate and goal brief há 1 mês atrás
  clanker cc160d76e3 Users page, profile page, role gates (admin-gated user/saddle/capability management) há 1 mês atrás
  clanker b1176f3cf8 ui+docs: clanker-saddle favicon + touch-icon, emblem beside the heading; READMEs swept for the plan-16 world (single-row blocks, parked outcomes, derived saddle state, no subtask/legacy-wire remnants, 924-check count) há 1 mês atrás
  clanker e236aa7079 r3: api_tokens dropped (arch 24, P3-2) — saddles.token is the single credential store: the legacy table, its entity mapping, the startup ensure_saddle_tokens migration (main.vala's call + the service), token_for_saddle (the saddles page and the /start callback token read the row directly), unregister's sweep, and saddle_for_token's fallback read all die. Nothing deployed predates the plan-10 row token (operator decision), so no credential loses validity — a legacy-shaped token string now 401s everywhere, pinned by the rewritten restart scenario: the fresh schema carries no api_tokens table, the row token survives a restart unchanged and still authenticates, and the legacy-shaped string authorises nothing. 850 -> 851 checks. há 1 mês atrás
  clanker 2cf9149d29 r3: legacy wire removal (arch 19, P3-1) — SaddleUpdateEndpoint + SaddlePollEndpoint and their routes are gone (the daemon never called them; verified against saddle/src at review time): the poll-era ingest/verdict pair 404s now, pinned by regressions. The service support that existed only for them dies with them: take_pending_answers (the saddle-keyed variant; the for_task assignment carrier stays), take_pending_comments + PendingComment, validate_token (its only caller was the update/poll bearer pin — resolve_bearer collapses to saddle_for_token for the all-id-less wire), the subtask/plan refusal arms, and the update endpoints' own statics move to SaddleWire (read_json_body/json_ok/json_error shared by every remaining /api/saddle/* route). Knock-ons per the plan: tasks.working_branch was write-dead (only /update done ever supplied it) — column + entity field + TaskDetailPublic member + the task-page line + mark_terminal/complete_task's dead parameter die; the plain-task plan-review UI in task_detail.html was unreachable (plans are goal-only since plan 12; only /update block type=plan could raise one) — BlockView.is_plan_review, the plan-review section, and the task page's ~180-line plan-remarks JS (dead with no [data-plan-review] targets) are removed; AnswerBlockAction's plan-verdict arms stay (the deep-link API + off-contract pushes keep working). Test fixtures rewrite into the push-era shapes: block raises ride POST /results blocked pushes (pages/lifecycle/push bundles), the terminal-task review fixture inserts its row directly (terminal pushes are consumed silently), rejected entries ride a results push, the dashboard review raise rides a review entry, the queued-state guard becomes a results state no-op, the /update subtask/plan refusals become 404 pins, and branch_advanced — the /poll verdict hint — is re-pinned on its surviving surface: the answers bundle's parked-resume allocation now asserts branch_advanced=true after a strictly-newer sibling completion on the shared branch. 856 -> 850 checks. há 1 mês atrás
  clanker acf1fcbe43 r2: LifecycleService owns the six cancel/retry/requeue orchestrations (arch 11) — TaskService+SaddleService+GoalService injected, no cycle; CancelTask/RetryTask/ResumeTask and CancelGoal/RetryGoalRun/RequeueGoalRun become thin auth+validation+notify wrappers delegating to it, the abort-before-mutate ordering and the abort failure contract (mark saddle offline, still proceed) living once in the service docblock+paths; RetryGoalRunAction's direct db.update_async<Goal> writes move into GoalService.retry_goal (goal revives active, completed_at withdrawn — no pulse added, matching the old action's write set). há 1 mês atrás
  clanker 2cbcc8862f qa: sqlite WAL + busy timeout on the singleton connection — a SELECT stepping against the harness's concurrent fixture write returned SQLITE_BUSY, which the ORM's lazy enumerator reports as end-of-rows (the lifecycle flake: task_state capabilities read back EMPTY though the row existed; Invercargill-Sql's SqliteResultEnumerable treats any non-ROW step as done). WAL readers never block writers and never are blocked by them; the 5s busy timeout absorbs the remaining writer-writer window há 1 mês atrás
  clanker e2a11c459d C3: goal_events deleted — terminal watermark + derived narrative há 1 mês atrás
  clanker e7e167579f C2: goal comments ride the run task; system events styled (F8) há 1 mês atrás
  clanker d1c8bea7e2 C1: goal blocks ride the run task — one row, one answer path (F6) há 1 mês atrás
  clanker e9b8fc1064 B1: goal-run control parity — Retry supervision, Requeue-to-resume, /tasks redirect há 1 mês atrás
  clanker 9bca970531 replay: daemon-global entry dedup — ingestion keys on (saddle, entry id) há 1 mês atrás
  clanker fa78f8a5bf goals: flatten — subtask web machinery and task plans deleted há 1 mês atrás
  clanker 4bc3e61edb goals: web UI — pile, timeline, queue filters, task page, carried fixes há 1 mês atrás
  clanker 44f2e66a5a goals: schema, lifecycle service, wire contract and task callbacks há 1 mês atrás