Every feature, fix, and improvement — documented as it ships.
v2.1.0April 15, 2026
Full task panel, labels & checklist inline, board empty state
Task Detail panel now has a 'Full page' link to open the complete task viewLabels editor inline in the daily panel — add and remove tags without leaving the focus viewChecklist visible and interactive in the panel — check items off from the daily pageBoard shows a guided empty state with a quick-create button on new projectsAgent inbox cards now show the task name and a direct 'View task' linkInbox summary chips — at-a-glance counts for review, waiting, questions, captures
New
TaskDetailPanel 'Full page' button — opens /tasks/:id in the same tab so you can access the full task editor, time tracking, agent history, and subtasks without losing your daily context
Labels editor in TaskDetailPanel — shows all non-effort tags as removable chips; + tag button adds new labels inline; saves immediately via PATCH /tasks/:id
Checklist in TaskDetailPanel — shows progress bar (N/M) and each item with a checkbox; checking an item saves immediately via PATCH /tasks/:id
Board empty state — when a project's board has columns but no tasks, a centered overlay shows a 'Board is empty' message with an 'Add first task' CTA button
Agent inbox: entity name shown instead of raw context string; 'View task →' link added to each card when entityType is TASK
Inbox summary chip strip: at-a-glance count chips for review items, agent questions, waiting-for tasks, suggestions, and pending captures — each chip navigates to the right section
Improvement
Main tasks API now includes checklist field in the list response, making it available everywhere tasks are fetched without an extra request
Task comments viewable and postable directly from the Daily focus panelInline OKR key result updates — click any progress value to edit it in the Daily viewReopen completed tasks from the Done page without leaving your flowDelegate and Mode pickers now click-based — no more dropdowns dismissing mid-hoverSkeleton loaders on Content, Knowledge, and Review pages for faster perceived loadAdd any task to today's focus from the full task detail pageLLM_KEY_SECRET enforced at startup in production — BYOK keys no longer silently encrypt with a known fallbackDone page Reopen button to restore completed tasks in one clickWeekly digest DB unique constraint — eliminates duplicate digest rows under concurrent writes
New
Task comments in TaskDetailPanel — view the full comment thread and post new comments from the Daily focus side panel without opening the full task page
KrValueEditor — click any OKR key result progress value in the Daily page OKR Pulse widget to edit it inline; saves immediately via PATCH /okrs/key-results/:id
Reopen button on Done page — hover any completed task to reveal an amber Reopen button that clears completedAt and moves the task back to open
Add to Today's Focus on task detail page — a flame-icon button in the task header adds the current task to daily-focus in one click
Skeleton loaders on Content, Knowledge, and Review pages — animated pulse rows replace plain 'Loading…' text
Knowledge page error state — shows a retry button when the API call fails instead of silently rendering an empty list
Pricing waitlist — Pro and Business tier cards on the landing page now show a waitlist email input instead of a dead mailto link
Improvement
TaskDetailPanel mobile layout — panel now slides up as a bottom sheet (85% viewport) on mobile instead of covering the full screen; desktop retains the right-side panel
FocusSlot drag handle — always visible on mobile for touch dragging, hover-revealed on desktop
Fix
Delegate-to-agent dropdown in FocusSlot used CSS :hover — hovering the gap between the button and menu dismissed it before you could click; replaced with click-toggle + backdrop overlay
Mode/effort picker in FocusSlot had the same hover-gap dismiss bug — now click-based with a transparent backdrop for reliable selection
LLM_KEY_SECRET startup guard — in production, the API now throws at boot if the secret is missing, preventing silent encryption with a known fallback value
WeeklyDigest unique constraint — added @@unique([workspaceId, weekStarting]) to the DB schema and updated the upsert to use the compound key; eliminates potential duplicate rows under concurrent digest generation
v1.9.0April 14, 2026
Native agents, system blueprints & bring-your-own API keys
Native agents now actually run — BullMQ worker was implemented but never startedPM Decomposer, Research Bot, and Code Reviewer available as one-click installsBring your own Groq and Anthropic API keys per workspaceAgent Store tab on the Agents page for browsing and installing system agentsAI Keys tab in Settings to manage workspace-level LLM credentials
New
create_tasks step type for native agent recipes — PM Decomposer uses this to turn LLM output into real subtasks on the parent task's board
Workspace-aware LLM clients — native agents check for a workspace LLM_PROVIDER integration before falling back to shared platform keys
PM Decomposer — native agent that breaks a complex task into 3–7 prioritised subtasks and creates them on the board automatically
Research Bot — native agent that extracts a search query from the task context, searches the web, structures findings into a markdown report, saves to vault, and proposes next steps
Code Reviewer — native agent (claude-haiku) that analyses code task context and returns structured review proposals with priority levels
Agent Store tab on the Agents page — browse and install system blueprints with one click
AI Keys tab in Settings — save workspace-specific Groq and Anthropic API keys (masked, stored in the integrations table)
Fix
Native agent worker was never imported — assignments queued silently and nothing executed; one import line now starts the BullMQ worker on API boot
Template variable {{steps.id.json}} without a trailing field name now resolves to the full JSON string instead of an empty string
Slack integration — AI PM layer captures bugs and features from any channelVoice messages transcribed via Groq Whisper and turned into tasksAI chat now renders markdown + 'What should I work on?' opens pre-filledAdd any task to your Daily Focus from All Tasks or Triage with one clickSidebar role fix — Settings, Agents, Assignments and all member items now visible
New
Slack integration — install the HAPM bot to any Slack workspace; messages in your intake channel, @mentions, or 📋 emoji reactions are auto-classified, aligned to OKRs, and posted back as structured proposals with Approve/Skip buttons
Slack ownership engine — scores every workspace member by skill overlap, team type, capacity, and recent activity to suggest the best owner for each captured item
Slack escalation job — pending items with no owner get a follow-up ping after configurable hours; auto-creates unowned task after 24h
Voice messages in Telegram now fully processed — transcribed by Groq Whisper, routed through the task creation or planner flow, result shown in the same message
AI chat markdown rendering — responses now render bold, italics, lists, code blocks, and tables instead of raw markdown text
Add to Daily Focus button (☀) on task rows in All Tasks and Triage — one click adds the task to today's Focus Zone without changing your workspace filter
Improvement
'What should I work on?' button on Daily page now opens the AI assistant with a pre-filled question about deadlines and priorities
Sidebar defensive merge — items with defaultVisible:true are always restored even when localStorage has a stale visibility map from an older version
Fix
Telegram voice: Groq Whisper rejected .oga format (Telegram's native voice codec) — now normalized to .ogg before upload
Telegram voice: 'Transcribing…' message was deleted before planner ran, causing silent failures — message is now kept alive and edited with the result
Telegram inline buttons: project selection callback_data exceeded Telegram's 64-byte limit, causing BUTTON_DATA_INVALID errors — store keys shortened with base36 timestamps
Sidebar MEMBER items (Settings, Pulse, Agents, Assignments, Triage, Impact, Advisor) were hidden for all users — role is now read from the fresh SWR workspace response instead of stale localStorage
v1.7.0April 5, 2026
Agent transparency, board UX, and daily workflow improvements
Active assignment banner on task detail — see exactly what agents are doing in real timeFailed agent tasks now show retry button with optional contextBoard columns now collapse — Done/Live auto-collapse on loadDrag any task to archive zone at the bottom of the boardProject health score — green/amber/red dot on every projectEvening wrap at 6pm — daily summary of completions, failures, agent statusAgent memory viewer — see what each agent has learnedSomeday triage mode — card-by-card review with Keep/Activate/Archive@mentions in comments fire agent webhooks directlyAssignment chains — see parent→child task trees in the assignments view
New
Active assignment banner on task detail page — shows agent name, last progress note, and live status (Active/Awaiting Input/Awaiting Review/Failed)
Retry failed assignments — when an agent fails, a Retry button appears inline with an optional context textarea to guide the retry
Failure detection — API now detects when an agent reports COMPLETED but note starts with Failed:/Error:/Unable to, and keeps the task in its current state instead of marking done
Board column collapse — click the chevron on any column header to collapse it to 120px; Done/Live/Shipped/Deployed auto-collapse on load
Board archive drag zone — drag any task card to the archive zone that appears at the bottom during a drag to archive it instantly
Project health score — each project now has a health calculation (WIP violations −12, overdue tasks −8, stale tasks −3) shown as a colored dot on the projects page
Agent memory viewer — collapsible panel on each agent card reads the vault memory file and shows what the agent has learned over time
Someday triage mode — the Someday page now has a card-by-card triage flow with Keep/Activate/Archive actions and a progress bar
@mentions in task comments — writing @agentname in a comment fires a webhook to that agent with the comment as context
Assignment chain view — the assignments page now shows child assignments indented under their parent with colored status dots
Evening wrap bot message — daily 6pm Telegram summary: tasks completed, open count, pending proposals, agents awaiting input, any failures
Auto-archive — tasks completed 30+ days ago are automatically archived nightly at 03:30 UTC
API health endpoint — GET /health returns DB/Redis status, uptime, and timestamp for monitoring
URL paste → task on captures page — paste any URL on the captures page to instantly open a pre-filled task creation form
Duplicate capture detection — pasting the same URL twice within 7 days returns the existing capture instead of creating a duplicate
Handoff context field — when handing off a task to an agent for the first time, there is now a context textarea
Fix
Archived tasks now correctly excluded from the board view
Notification badge no longer caps at 9+ — now shows up to 99+
Board now revalidates after archiving a task so it disappears immediately
v1.6.0April 1, 2026
Headless Claude Code agents, Research with web search & Video→Obsidian
Claude Code headless agent — runs in your actual repo via Bash/Read/WriteResearch agents with live web search, findings auto-written to ObsidianOpenClaw orchestrator — decomposes goals into subtasks for specialist agentsVideo URL pipeline — YouTube/TikTok/Instagram → transcript → Obsidian noteAgent assignments now require confirmation before the agent starts
New
Claude Code headless agent — register an agent with type CLAUDE_CODE and a repoPath; when assigned a task it runs Claude Code non-interactively in your repo with full Bash/Read/Write/Edit access and posts a summary proposal for review
OpenClaw orchestrator — register an agent with type OPENCLAW; it receives a high-level goal, uses Claude to decompose it into 3-7 concrete subtasks, and auto-routes each to the best specialist agent by skill set
Research agents with live web search — agents with RESEARCH skill now use Claude's web_search tool to research in real time; findings are automatically written to your Obsidian vault at hapm/research/{date}-{title}.md
Video URL → Obsidian pipeline — share a YouTube, TikTok, or Instagram link in the capture page or Telegram; HAPM transcribes it, analyzes with Claude, and writes a structured vault note with summary, key lessons, and suggested tasks
Agent assignment confirmation gate — video and agent assignments now start as PENDING_CONFIRMATION; you approve before the agent starts working. Pass autoAssign: true to skip confirmation
repoPath field on agent blueprints — Claude Code agents can specify the absolute path to the codebase on the agent-bridge machine
Agents setup guide — new /agents/setup page with step-by-step instructions for every agent type
POST /assignments/:id/research-note endpoint — agents can write structured research reports directly to the vault and KnowledgeItems DB without human approval
Improvement
Webhook payload now includes agentSkills array so the agent-bridge can route to the correct handler (research, code, orchestration) without relying on agentType alone
Video captures routed to CLAUDE_CODE agent if available in the workspace; falls back to the media worker (Groq Whisper) when no agent is configured
v1.5.0March 25, 2026
Mobile polish, OKR improvements, smart daily tools & more
Full mobile card view on task listOKR yearly/quarterly split + All Workspaces tabInline due date picker on task rowsMorning Telegram digest at 8amYesterday's completed tasks on Daily page
New
Mobile task cards — tasks page now shows rich mobile cards on small screens with priority dot, project chip, column, and due date instead of the truncated table row
Kanban board mobile — columns now take 85% viewport width on mobile and snap-scroll horizontally for easy swiping between columns
iOS safe-area padding — bottom content no longer hides behind the home indicator on notched iPhones
Project chips in My Tasks — each task row in My Overview now shows a colored project pill for quick context
Yesterday's done tasks — Daily page now shows a collapsible 'Yesterday' section with completed tasks, helping you write status updates and feel progress
Inline due date picker — click any due date on the task list to edit it in-place without opening the full drawer
Bulk due date setter — select multiple tasks and set a shared due date from the floating bulk action bar
Utilization % in Time reports — new summary card showing overall billable percentage across all tracked time
OKR Annual/Quarterly split — both the Org page and OKRs page now group objectives under 'Annual' and 'Q1/Q2/Q3/Q4' divider headers
OKRs All Workspaces tab — see objectives from every workspace you belong to in a single view
OKR assignee filter — filter workspace OKRs by team member/owner from a dropdown in the filter bar
Morning Telegram digest — daily 8am message with overdue tasks, tasks due today, and top urgent/high priority items
Improvement
My Overview responsive — tighter padding and stat card sizing on mobile screens
Search page responsive padding — better spacing on small screens
Due date column now visible at lg: breakpoint on task list (was xl: only)
Fix
Fixed 'Live' column tasks incorrectly showing as open/overdue in My Overview stats — done column filter now covers all done-state column names (Live, Shipped, Maintenance etc.)
Fixed 'Couldn't complete task' error on Daily page — GET /projects/:projectId/columns endpoint added so the done-column lookup works correctly