[
  {
    "id": "33ebc71e-7d40-456c-8f98-bb3578d2bb2b",
    "title": "RESEARCH: Find iOS side projects with MRR potential",
    "description": "Research and identify iOS app ideas that have strong Monthly Recurring Revenue (MRR) opportunities. Create a md file and attach it here. \n\nAttach a file to this task when done",
    "type": "research",
    "status": "done",
    "priority": "low",
    "project_id": "a1b2c3d4-0003-0000-0000-000000000003",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 23:11:20.567001+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "ios",
      "mrr",
      "research",
      "side-project",
      "entrepreneurship",
      "app-ideas"
    ],
    "attachments": [
      {
        "id": "8227524b-9d03-407e-852a-911bd9c046f2",
        "name": "ios-mrr-research-2026-02-21.md",
        "size": 16491,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 21988 characters]",
        "uploadedAt": "2026-02-21T22:53:20Z"
      },
      {
        "id": "0817027c-ab07-4c5a-8df5-2e18d134b9c7",
        "name": "ios-mrr-research-2026-02-21.md",
        "size": 16491,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 21988 characters]",
        "uploadedAt": "2026-02-21T23:11:19Z"
      }
    ]
  },
  {
    "id": "0da220bc-eb6b-4be1-846a-c2c801def427",
    "title": "Gantt Board",
    "description": "When editing the task, you click the Save at the bottom right and you have no idea what happened, if it failed or saved or what?",
    "type": "task",
    "status": "done",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-21 22:10:23.675+00",
    "updated_at": "2026-02-21 23:13:32.420417+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "12780467-db89-4b0d-bca5-422be441aee5",
    "title": "Blog - Backup",
    "description": "Add CLI/Scripts as noted in your workflow",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-21 23:32:20.163+00",
    "updated_at": "2026-02-22 05:19:46.641824+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "1cd602eb-20dc-4d59-8581-cffbecb2586e",
    "title": "Apply Voxyz Autonomous Architecture to Mission Control Phase 10",
    "description": null,
    "type": "task",
    "status": "review",
    "priority": "medium",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 00:10:51.900762+00",
    "updated_at": "2026-02-23 17:32:37.86652+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "mission-control",
      "phase-10",
      "automation",
      "ai-agents",
      "voxyz",
      "research-application"
    ],
    "attachments": []
  },
  {
    "id": "42218ed3-55bb-4bd6-97e0-7b9b39f3c20e",
    "title": "Review Reddit - OpenClaw Production Runbook",
    "description": "Production OpenClaw setup guide from Reddit\n\nSource: r/openclaw - u/digitalknk\nURL: https://www.reddit.com/r/openclaw/s/PKq2CUUYMC\n\nTopics:\n- Coordinator vs worker model architecture\n- GPT-5 Nano for background tasks (cost optimization)\n- Memory config that prevents forgetting\n- VPS hardening and git-tracked configs\n\nResources:\n- GitHub Repo: https://github.com/digitalknk/openclaw-runbook\n- Setup Gist: https://gist.github.com/digitalknk/ec360aab27ca47cb4106a183b2c25a98\n- Config Gist: https://gist.github.com/digitalknk/4169b59d01658e20002a093d544eb391\n\nFull summary attached.",
    "type": "research",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 07:09:45+00",
    "updated_at": "2026-02-23 17:32:38.01775+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "openclaw",
      "production",
      "optimization",
      "config",
      "attachement"
    ],
    "attachments": [
      {
        "id": "a6cb8aa6-7621-4c58-a620-0f445eb66a22",
        "name": "openclaw-runbook-reddit.md",
        "size": 2590,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,IyBPcGVuQ2xhdyBSdW5ib29rOiBSZWFsLVdvcmxkIFByb2R1Y3Rpb24gU2V0dXAKCioqU291cmNlOioqIFJlZGRpdCByL29wZW5jbGF3IC0gdS9kaWdpdGFsa25rICAKKipEYXRlOioqIEZlYnJ1YXJ5IDIwMjYgIAoqKlVSTDoqKiBodHRwczovL3d3dy5yZWRkaXQuY29tL3Ivb3BlbmNsYXcvcy9QS3EyQ1VVWU1DCgotLS0KCiMjIE92ZXJ2aWV3CgpBIHByYWN0aWNhbCwgYmF0dGxlLXRlc3RlZCBndWlkZSBmb3IgcnVubmluZyBPcGVuQ2xhdyBpbiBwcm9kdWN0aW9uIGFmdGVyICJicmVha2luZyBpdCBhIGJ1bmNoIG9mIHRpbWVzLiIgTm90IGEgaHlwZSBwb3N04oCUanVzdCB3aGF0IGFjdHVhbGx5IHdvcmtzIGZvciBzdGFibGUsIHByZWRpY3RhYmxlLCBjb3N0LWVmZmVjdGl2ZSBvcGVyYXRpb24uCgotLS0KCiMjIEtleSBUb3BpY3MgQ292ZXJlZAoKIyMjIDEuIE1vZGVsIEFyY2hpdGVjdHVyZTogQ29vcmRpbmF0b3IgdnMgV29ya2VyCgoqKkRlZmF1bHQgbW9kZWwgc2hvdWxkIGJlIGEgY29vcmRpbmF0b3IsIG5vdCBhIHdvcmtlcioqCgotIE1haW4gc2Vzc2lvbiBvcmNoZXN0cmF0ZXMKLSBIZWF2eSB3b3JrIGRlbGVnYXRlZCB0byBzdWJhZ2VudHMKLSBQcmV2ZW50cyBjb250ZXh0IGJsb2F0IGFuZCBjcmVkaXQgYnVybgoKIyMjIDIuIENvc3QtT3B0aW1pemVkIEJhY2tncm91bmQgVGFza3MKCioqSGVhcnRiZWF0IGFuZCBiYWNrZ3JvdW5kIHRhc2tzIG9uIEdQVC01IE5hbm8qKgotIEZyYWN0aW9ucyBvZiBhIGNlbnQgcGVyIG9wZXJhdGlvbgotIEVmZmljaWVudCBwb2xsaW5nIHdpdGhvdXQgZXhwZW5zaXZlIG1vZGVsIGNhbGxzCi0gS2VlcHMgbWFpbiBzZXNzaW9uIHJlc3BvbnNpdmUKCiMjIyAzLiBNZW1vcnkgQ29uZmlndXJhdGlvbgoKKipTb2x2ZWQgdGhlICJ3aHkgZGlkIGl0IGZvcmdldCB0aGF0IiBwcm9ibGVtKioKLSBQcm9wZXIgbWVtb3J5IHBlcnNpc3RlbmNlIHNldHVwCi0gRXh0ZXJuYWwgbWVtb3J5IHBhdHRlcm5zCi0gQ29uZmlnIHZhbGlkYXRpb24KCiMjIyA0LiBJbmZyYXN0cnVjdHVyZSAmIE9wZXJhdGlvbnMKCioqVlBTIGhhcmRlbmluZyoqCi0gU2VjdXJpdHkgYmVzdCBwcmFjdGljZXMKLSBDb25maWcgdmFsaWRhdGlvbgotIEdpdC10cmFja2luZyBjb25maWdzIGZvciByb2xsYmFjawoKLS0tCgojIyBSZXNvdXJjZXMKCiMjIyBNYWluIFJ1bmJvb2sKKipHaXRIdWIgUmVwbzoqKiBodHRwczovL2dpdGh1Yi5jb20vZGlnaXRhbGtuay9vcGVuY2xhdy1ydW5ib29rCi0gUmVhbCBjb25maWcgc25pcHBldHMKLSBUcmFkZW9mZnMgZG9jdW1lbnRlZAotIENvbW11bml0eSBjb250cmlidXRpb25zIHdlbGNvbWUKCiMjIyBHaXN0OiBEZXRhaWxlZCBTZXR1cAoqKkxpbms6KiogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZGlnaXRhbGtuay9lYzM2MGFhYjI3Y2E0N2NiNDEwNmExODNiMmMyNWE5OAotIERheS10by1kYXkgb3BlcmF0aW9ucwotIENyZWRpdCBvcHRpbWl6YXRpb24KLSBBdm9pZGluZyBxdW90YS9sb29wIGlzc3VlcwoKIyMjIEdpc3Q6IFNhbml0aXplZCBDb25maWcKKipMaW5rOioqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RpZ2l0YWxrbmsvNDE2OWI1OWQwMTY1OGUyMDAwMmEwOTNkNTQ0ZWIzOTEKLSBQcm9kdWN0aW9uLXJlYWR5IGNvbmZpZ3VyYXRpb24KLSBTdHJpcHBlZCBvZiBzZW5zaXRpdmUgZGF0YQotIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbgoKLS0tCgojIyBUYXJnZXQgQXVkaWVuY2UKCi0gTmV3IHRvIE9wZW5DbGF3Ci0gRnJ1c3RyYXRlZCB3aXRoIHF1b3RhcyBhbmQgbG9vcHMKLSBXYW50ICJwbGFubmluZyBmb3JldmVyIiBpc3N1ZXMgc29sdmVkCi0gTmVlZCBzdGFibGUsIHByZWRpY3RhYmxlIG9wZXJhdGlvbnMKCi0tLQoKIyMgUGhpbG9zb3BoeQoKPiAiVGhpcyBpcyBub3QgYSBoeXBlIHBvc3QgYW5kIGl0J3Mgbm90IGEgJ2Jlc3Qgc2V0dXAnIGNsYWltLiBJdCdzIGp1c3Qgd2hhdCBlbmRlZCB1cCB3b3JraW5nIGZvciBtZSBvbmNlIHRoZSBub3ZlbHR5IHdvcmUgb2ZmIGFuZCBJIHdhbnRlZCBzb21ldGhpbmcgc3RhYmxlLCBwcmVkaWN0YWJsZSwgYW5kIG5vdCBjb25zdGFudGx5IGJ1cm5pbmcgY3JlZGl0cy4iCgotLS0KCiMjIEFjdGlvbiBJdGVtcwoKLSBbIF0gUmV2aWV3IHJ1bmJvb2sgcmVwbyBmb3IgY29vcmRpbmF0b3IgcGF0dGVybnMKLSBbIF0gSW1wbGVtZW50IEdQVC01IE5hbm8gZm9yIGJhY2tncm91bmQgdGFza3MKLSBbIF0gQXVkaXQgbWVtb3J5IGNvbmZpZyBhZ2FpbnN0IGd1aWRlCi0gWyBdIFNldCB1cCBnaXQtdHJhY2tlZCBjb25maWcgd2l0aCByb2xsYmFjayBjYXBhYmlsaXR5Ci0gWyBdIENvbXBhcmUgY3VycmVudCBzZXR1cCB0byBwcm9kdWN0aW9uIHBhdHRlcm5zCgotLS0KCiMjIFJlbGF0ZWQKCi0gT3BlbkNsYXcgb2ZmaWNpYWwgZG9jcwotIENvbW11bml0eSBEaXNjb3JkL1JlZGRpdCByL29wZW5jbGF3Ci0gQXV0aG9yOiB1L2RpZ2l0YWxrbmsgKGNvbnRyaWJ1dG9yIHRvIE9wZW5DbGF3IGVjb3N5c3RlbSkKCi0tLQoKKkNvbXBpbGVkIGZyb20gUmVkZGl0IHBvc3QqICAKKlN0YXR1czogQWN0aXZlIGNvbW11bml0eSByZXNvdXJjZSwgYWNjZXB0aW5nIGNvbnRyaWJ1dGlvbnMqCg==",
        "uploadedAt": "2026-02-22T07:09:51Z"
      }
    ]
  },
  {
    "id": "ff2fb52e-03fe-441c-a0f8-95d44300c044",
    "title": "Gang Board sorting",
    "description": "In all areas where there are task order descending by last updated date so the latest moves to the top",
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 03:50:27.854+00",
    "updated_at": "2026-02-22 17:39:57.465775+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "afe1e8c1-8d86-4736-8438-8c415153a488",
    "title": "BUG: Task Details Screen - Comments Not Displaying",
    "description": "**Bug Description:**\nComments are being saved to the database but not displaying in the Task Details UI.\n\n**Evidence:**\nTask ID: d9905880-1b03-49e2-8f81-bf0362055571\nDatabase shows comment exists but UI shows empty.\n\n**Expected:** Comments display in task details\n**Actual:** Comments section appears empty\n\n**Fix needed:**\n- Comments render in task details UI\n- Author name and timestamp display\n- Support multiple comments",
    "type": "bug",
    "status": "open",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 19:58:41.494012+00",
    "updated_at": "2026-02-23 19:58:41.494012+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "gantt-board",
      "ui",
      "bug",
      "comments"
    ],
    "attachments": []
  },
  {
    "id": "ad032eaf-58d5-4783-a5cc-63070774d4e9",
    "title": "Custom alerts",
    "description": null,
    "type": "task",
    "status": "review",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 01:15:47.425+00",
    "updated_at": "2026-02-23 11:40:20.54047+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "security",
      "openclaw"
    ],
    "attachments": []
  },
  {
    "id": "f23dbea9-de4f-4eba-abd3-b52598b7f7ee",
    "title": "OpenClaw Tips",
    "description": "Find and compile the latest tips and tricks for openclaw and how people are using them. \n\nTake the latest articles and the data and turn this into 1 MD file with attributions and attach it here.",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-21 23:45:51.141+00",
    "updated_at": "2026-02-22 03:04:01.407435+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "openclaw",
      "best pratices"
    ],
    "attachments": [
      {
        "id": "ea562623-d035-447e-ae86-99184b5cea15",
        "name": "openclaw-tips-2026-02-22.md",
        "size": 20553,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 27404 characters]",
        "uploadedAt": "2026-02-22T00:05:51Z"
      }
    ]
  },
  {
    "id": "d53d6e30-0afc-4060-8105-d1046c7cb594",
    "title": "Phase 9: Polish and integration",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 02:57:36+00",
    "updated_at": "2026-02-23 20:12:16.671626+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "f328d12d-d045-4b67-af46-d02c15975b1f",
    "title": "Research: Simon Hoiberg X Thread on AI/Startups",
    "description": "**URL:** https://x.com/SimonHoiberg/status/2025918084591063322\n\n**Status:** ✅ Research completed using Tavily AI search\n\n**Key Findings:**\n- Simon Hoiberg runs lean AI-powered startup (4 people + 9 AI agents)\n- Target: $2M ARR in 2025\n- AI agents handle content creation, team comms, business ops\n- Uses Discord for AI agent team collaboration\n- Philosophy: Speed > perfection, real solutions > flashy demos\n\n**Attachment:** simon-hoiberg-research.md (full summary with sources)\n\n**Note:** Original X thread was not directly accessible, but related content was found and summarized.",
    "type": "research",
    "status": "review",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 20:04:35.861039+00",
    "updated_at": "2026-02-23 20:15:28.498387+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "research",
      "x-thread",
      "ai",
      "startups"
    ],
    "attachments": [
      {
        "id": "e5223f81-e0ae-4065-8018-a3a73db952b8",
        "name": "simon-hoiberg-research.md",
        "size": 1502,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,IyBTaW1vbiBIb2liZXJnOiBBSSBBZ2VudCBUZWFtICYgTGVhbiBTdGFydHVwIFJlc2VhcmNoCgoqKk9yaWdpbmFsIFVSTDoqKiBodHRwczovL3guY29tL1NpbW9uSG9pYmVyZy9zdGF0dXMvMjAyNTkxODA4NDU5MTA2MzMyMgoqKlJlc2VhcmNoIERhdGU6KiogMjAyNi0wMi0yMwoqKlNvdXJjZToqKiBUYXZpbHkgQUkgU2VhcmNoCgotLS0KCiMjIEtleSBJbnNpZ2h0cwoKIyMjIEFJIEFnZW50IFRlYW0gU3RydWN0dXJlClNpbW9uIEhvaWJlcmcgcnVucyBhICoqbGVhbiBBSS1wb3dlcmVkIHN0YXJ0dXAqKiB3aXRoIGEgdGVhbSBvZiBBSSBhZ2VudHM6Ci0gKioyMDIzOioqIDExIHBlb3BsZQotICoqMjAyNDoqKiA5IHBlb3BsZSAgCi0gKioyMDI1OioqIDQgcGVvcGxlICsgQUkgYWdlbnRzCgpIZSBoYXMgKio5IEFJIGFnZW50cyBpbiBhIERpc2NvcmQqKiB3aXRoIG5hbWVzIGFuZCBwcm9maWxlIGltYWdlcyB0aGF0IGNhbiB0YWxrIHRvIGVhY2ggb3RoZXIgYW5kIHRvIGhpbS4KCiMjIyBCdXNpbmVzcyBNZXRyaWNzCi0gKipUYXJnZXQ6KiogJDJNIEFSUiBpbiAyMDI1Ci0gKipDdXJyZW50IHJldmVudWUgc3RyZWFtczoqKgogIC0gRnJlZWxhbmNpbmc6ICskMzAwSy95ZWFyCiAgLSBTYWFTOiAkMjBLL21vbnRoCiAgLSBFLUJvb2tzOiAkNEsvbW9udGgKICAtIFlvdVR1YmU6ICQ2Sy9tb250aAoKIyMjIEFJIEFnZW50IEFwcGxpY2F0aW9ucwoxLiAqKkNvbnRlbnQgQ3JlYXRpb246KiogQUkgYWdlbnRzIHJlc2VhcmNoLCB3cml0ZSwgYW5kIHB1Ymxpc2ggU0VPLW9wdGltaXplZCBibG9nIHBvc3RzCjIuICoqVGVhbSBDb21tdW5pY2F0aW9uOioqIEFnZW50cyBjb2xsYWJvcmF0ZSBpbiBEaXNjb3JkCjMuICoqQnVzaW5lc3MgT3BlcmF0aW9uczoqKiBIYW5kbGVzIHRhc2tzIGFjcm9zcyB0aGUgYnVzaW5lc3MKCiMjIyBQaGlsb3NvcGh5Ci0gU3BlZWQgdG8gbWFya2V0ID4gcGVyZmVjdGlvbgotIEFJIHRoYXQgc29sdmVzIHJlYWwgcHJvYmxlbXMgPiBmbGFzaHkgZGVtb3MKLSBJbnRlZ3JhdGlvbiB3aXRoIGV4aXN0aW5nIHdvcmtmbG93cyA+IHN0YW5kYWxvbmUgdG9vbHMKLSBMZWFuIHRlYW0gZW5hYmxlZCBieSBBSSBhdXRvbWF0aW9uCgotLS0KCiMjIFJlbGF0ZWQgUmVzb3VyY2VzCi0gWCBQcm9maWxlOiBodHRwczovL3guY29tL1NpbW9uSG9pYmVyZwotIEhpZ2hsaWdodHM6IGh0dHBzOi8veC5jb20vU2ltb25Ib2liZXJnL2hpZ2hsaWdodHMKLSBBSSBBZ2VudCBUZWFtIFBvc3Q6IGh0dHBzOi8vd3d3LnRocmVhZHMuY29tL0BzaW1vbmhvaWJlcmcvcG9zdC9EUEdzUl9IRFNYYS8KLSBZb3VUdWJlIFR1dG9yaWFsOiBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUhtMERadGlLVUk4CgotLS0KCipOb3RlOiBPcmlnaW5hbCBYIHRocmVhZCBjb250ZW50IHdhcyBub3QgYWNjZXNzaWJsZSBkdWUgdG8gcHJpdmFjeSByZXN0cmljdGlvbnMuIFRoaXMgc3VtbWFyeSBpcyBjb21waWxlZCBmcm9tIHJlbGF0ZWQgcHVibGljIHNvdXJjZXMuKgo=",
        "uploadedAt": "2026-02-23T20:15:11Z"
      }
    ]
  },
  {
    "id": "85a4c1ee-8cf1-417f-b979-0b516304dfa6",
    "title": "Phase 1: Connect Mission Control to Supabase",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 02:57:34+00",
    "updated_at": "2026-02-23 17:32:38.142417+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": [
      {
        "id": "c54ab916-89ac-496f-bf51-8c78e90a0d36",
        "name": "mission-control-refactor-plan.md",
        "size": 13108,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 17480 characters]",
        "uploadedAt": "2026-02-22T02:57:58Z"
      }
    ]
  },
  {
    "id": "66bdce3c-0cd0-444f-8f45-995b036c5f15",
    "title": "Phase 5: Documents page",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 02:57:35+00",
    "updated_at": "2026-02-23 17:32:38.389509+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "21373b2e-e486-4b0b-9842-849d2422cd7f",
    "title": "Phase 6: Tools page with quick links",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 02:57:35+00",
    "updated_at": "2026-02-23 20:11:15.425165+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "b7c5fe59-109e-4437-b88b-7fe9874cc862",
    "title": "Phase 2: Transform Tasks page to overview",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 02:57:34+00",
    "updated_at": "2026-02-23 17:32:38.679266+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "8f478969-e83e-4399-b61f-37ca4d6b1d35",
    "title": "Add Sprint Archive/History page",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 02:57:36+00",
    "updated_at": "2026-02-23 17:32:38.960954+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "e6249c1d-cf05-48e4-ae80-530337b1dc9f",
    "title": "Add Sprint functionality to Gantt Board",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-20 05:30:17.029+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "55065eae-5eac-4064-ada4-3c7f07899ceb",
    "title": "Phase 7: Activity feed from real data",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 02:57:35+00",
    "updated_at": "2026-02-23 20:11:37.050585+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "b82674ce-e8a4-41ea-8e9c-99f39f47d78d",
    "title": "Review X thread - OpenClaw Mission Control System by Julian Goldie SEO",
    "description": "Comprehensive guide to OpenClaw Mission Control System\n\nSource: X thread by @JulianGoldieSEO\nURL: https://x.com/juliangoldieseo/status/2025299921713426465?s=46\n\nFull markdown summary attached with:\n- Key features (Dashboard, Kanban, Skill Marketplace, etc.)\n- Benefits for beginners and advanced users\n- Use cases\n- FAQ section\n- Getting started resources\n\nIncludes link to AI Success Lab for additional learning.",
    "type": "research",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 04:33:37+00",
    "updated_at": "2026-02-23 17:32:36.974657+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": [
      {
        "id": "336906e2-72b4-45da-a56d-7952f282e96b",
        "name": "openclaw-mission-control-guide.md",
        "size": 5554,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 7408 characters]",
        "uploadedAt": "2026-02-22T04:34:14Z"
      }
    ]
  },
  {
    "id": "66f1146e-41c4-4b03-a292-9358b7f9bedb",
    "title": "Gantt Board update search ",
    "description": "search should be shown as another view, not filtering or showing in the kanban.  it should be list of tasks showing no matter what the state",
    "type": "task",
    "status": "done",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-21 22:07:19.922+00",
    "updated_at": "2026-02-22 17:56:47.524713+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "56ae2be4-fcf1-403a-87fb-ea9de966f456",
    "title": "Mission Control Search Enhancement",
    "description": "Implemented comprehensive search feature for Mission Control that searches across all database entities.\n\n**Search Types:**\n- Tasks - with status icon, priority, project name\n- Projects - with color indicator\n- Sprints - with goal/description\n- Documents - with folder name and colored tags\n\n**Features:**\n- Type-based grouped results with counts\n- Real-time debounced search (150ms)\n- Tag colors for documents (infrastructure, monitoring, security, urgent, guide)\n- Extensible architecture via searchConfigs array\n\n**API:** `/api/search?q=query` returns typed results\n\n**Files:**\n- `/app/api/search/route.ts` - Search API with extensible config\n- `/components/layout/quick-search.tsx` - Updated search UI\n\n**To extend:** Add new search types to `searchConfigs` array",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": null,
    "created_at": "2026-02-23 18:53:21.571024+00",
    "updated_at": "2026-02-23 19:14:22.369239+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "mission-control",
      "search",
      "enhancement",
      "completed"
    ],
    "attachments": []
  },
  {
    "id": "5d74a680-59a6-4c5a-b07d-2a7b2bdee893",
    "title": "Phase 8: Projects overview page",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 02:57:36+00",
    "updated_at": "2026-02-23 20:10:54.842043+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "65bc8c5a-212a-4532-a027-ea424e62900e",
    "title": "Phase 4: Calendar integration",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 02:57:35+00",
    "updated_at": "2026-02-23 20:11:47.757906+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": []
  },
  {
    "id": "f401df02-c072-41b9-b28c-8b71b66da860",
    "title": "Implement Ramya's OpenClaw Memory Optimizations",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 22:43:32.197289+00",
    "updated_at": "2026-02-23 17:32:37.161105+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "openclaw",
      "memory",
      "optimization",
      "performance",
      "agent"
    ],
    "attachments": []
  },
  {
    "id": "b9cdfa11-fbb4-4485-8c13-cddc1e39c4fe",
    "title": "Review X thread and document insights",
    "description": "Review X thread from @hasantoxr and create markdown summary\n\nURL: https://x.com/hasantoxr/status/2025202192073064837?s=46\n\nRead the entire thread, extract key insights, and create a well-formatted markdown file with:\n- Main points\n- Key takeaways\n- Any actionable items or ideas\n- Attach the markdown file to this task\n\nNote: Browser/web search currently unavailable - fetch manually or wait for API fix",
    "type": "research",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 03:36:02+00",
    "updated_at": "2026-02-23 17:32:37.589204+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [],
    "attachments": [
      {
        "id": "4066708a-a520-42dc-80a9-b678874b2d91",
        "name": "ui-bakery-thread-summary.md",
        "size": 3980,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,[encoded data, 5308 characters]",
        "uploadedAt": "2026-02-22T03:44:08Z"
      }
    ]
  },
  {
    "id": "715a44e9-aaa4-43b5-a940-1e57125d943f",
    "title": "Review X thread - OpenClaw Context Management Guide by Johann Sath",
    "description": "Critical guide on managing OpenClaw context limits\n\nSource: @johann_sath\nURL: https://x.com/johann_sath/status/2025440759416045702\n\nKey strategies covered:\n1. Orchestrator pattern in SOUL.md\n2. BRAIN.md as external memory\n3. Efficient heartbeats (<3s)\n4. Isolated cron jobs\n5. Subagent delegation\n\nResult: Keep main session under 30K context (vs 150K limit)\n\nFull implementation guide attached.",
    "type": "research",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 07:05:38+00",
    "updated_at": "2026-02-23 17:32:37.732829+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [],
    "tags": [
      "openclaw",
      "optimization",
      "context-management"
    ],
    "attachments": [
      {
        "id": "6acbd910-b11e-46e4-88f9-cd5dd16bbfa8",
        "name": "openclaw-context-management-guide.md",
        "size": 2863,
        "type": "text/markdown",
        "dataUrl": "data:text/markdown;base64,IyBIb3cgdG8gTmV2ZXIgSGl0IE9wZW5DbGF3J3MgMTUwSyBDb250ZXh0IExpbWl0CgoqKlNvdXJjZToqKiBYIFRocmVhZCBieSBbSm9oYW5uIFNhdGhpYW5hdGhlbl0oaHR0cHM6Ly94LmNvbS9qb2hhbm5fc2F0aCkgIAoqKkRhdGU6KiogRmVicnVhcnkgMjEsIDIwMjYgIAoqKlVSTDoqKiBodHRwczovL3guY29tL2pvaGFubl9zYXRoL3N0YXR1cy8yMDI1NDQwNzU5NDE2MDQ1NzAyCgotLS0KCiMjIFRoZSBQcm9ibGVtCgpNb3N0IE9wZW5DbGF3IHVzZXJzIGhpdCAxNTBLIGNvbnRleHQgaW4gYSBzaW5nbGUgY29udmVyc2F0aW9uIGFuZCB3b25kZXIgd2h5IHRoZWlyIGFnZW50IGdldHMgZHVtYmVyLiBUaGUgc29sdXRpb24gaXNuJ3QgYSBiaWdnZXIgd2luZG934oCUaXQncyBuZXZlciBuZWVkaW5nIG9uZS4KCi0tLQoKIyMgVGhlIDUgU3RyYXRlZ2llcwoKIyMjIDEuIEFkZCAiT3JjaGVzdHJhdG9yIiBQYXR0ZXJuIHRvIFNPVUwubWQKCioqRmlsZToqKiBgU09VTC5tZGAgIAoqKkFkZDoqKiAiWW91IGFyZSB0aGUgb3JjaGVzdHJhdG9yLiBTdWJhZ2VudHMgZXhlY3V0ZS4iCgoqKldoeSBpdCB3b3JrczoqKgotIE1haW4gc2Vzc2lvbiBzdGF5cyBsZWFuCi0gSGVhdnkgd29yayBydW5zIGluIGZyZXNoIGNvbnRleHQgd2luZG93cwotIFN1YmFnZW50cyBzcGF3biwgd29yaywgcmVwb3J0IGJhY2ssIGNvbnRleHQgZGllcwoKKipSZXN1bHQ6KiogTWFpbiBzZXNzaW9uIHJ1bnMgMjQvNyB3aXRob3V0IGJsb2F0CgotLS0KCiMjIyAyLiBVc2UgQlJBSU4ubWQgYXMgRXh0ZXJuYWwgTWVtb3J5CgoqKkZpbGU6KiogYEJSQUlOLm1kYCAgCioqUGF0dGVybjoqKiBBZ2VudCByZWFkcyAmIHdyaXRlcyBpbnN0ZWFkIG9mIHJlbWVtYmVyaW5nIGV2ZXJ5dGhpbmcgaW4tY29udGV4dAoKKipXaHkgaXQgd29ya3M6KioKLSBPZmZsb2FkcyBtZW1vcnkgZnJvbSBjb250ZXh0IHRvIGRpc2sKLSBBZ2VudCByZWZlcmVuY2VzIGZpbGVzIGluc3RlYWQgb2YgcmVjYWxsaW5nCi0gU3RydWN0dXJlZCBzdG9yYWdlIGZvciBjb21wbGV4IHN0YXRlCgotLS0KCiMjIyAzLiBTZXQgVXAgSGVhcnRiZWF0cwoKKipQYXR0ZXJuOioqIEZhc3QgY2hlY2staW5zICg8M3MpIHRoYXQgZG9uJ3QgbG9hZCBmaWxlcyB1bmxlc3MgeW91J3JlIGlkbGUKCioqSW1wbGVtZW50YXRpb246KioKLSBPbmx5IGNoZWNrIGNyaXRpY2FsIGl0ZW1zCi0gU2tpcCBmaWxlIHJlYWRzIHVubGVzcyBuZWNlc3NhcnkKLSBCYXRjaCBtdWx0aXBsZSBjaGVja3MgdG9nZXRoZXIKCioqQmVuZWZpdDoqKiBLZWVwcyBzZXNzaW9uIHJlc3BvbnNpdmUgd2l0aG91dCBjb250ZXh0IGJsb2F0CgotLS0KCiMjIyA0LiBSdW4gQ3JvbiBKb2JzIElzb2xhdGVkCgoqKlBhdHRlcm46KiogRWFjaCBjcm9uIGpvYiBnZXRzIGl0cyBvd24gc2Vzc2lvbgoKKipXaHkgaXQgd29ya3M6KioKLSBOZXZlciBibG9hdHMgbWFpbiB0aHJlYWQKLSBJbmRlcGVuZGVudCBleGVjdXRpb24gY29udGV4dHMKLSBQYXJhbGxlbCBwcm9jZXNzaW5nIHdpdGhvdXQgaW50ZXJmZXJlbmNlCgotLS0KCiMjIyA1LiBEZWxlZ2F0ZSBFdmVyeXRoaW5nIHRvIFN1YmFnZW50cwoKKipQYXR0ZXJuOioqIFN1YmFnZW50IHNwYXducyDihpIgZG9lcyB3b3JrIOKGkiByZXBvcnRzIGJhY2sg4oaSIGNvbnRleHQgZGllcwoKKipGbG93OioqCjEuIE1haW4gc2Vzc2lvbiBpZGVudGlmaWVzIHRhc2sKMi4gU3Bhd25zIHN1YmFnZW50IHdpdGggc3BlY2lmaWMgZ29hbAozLiBTdWJhZ2VudCBjb21wbGV0ZXMgd29yayBpbiBpc29sYXRpb24KNC4gUmVwb3J0cyByZXN1bHRzIGJhY2sKNS4gU3ViYWdlbnQgY29udGV4dCBnYXJiYWdlIGNvbGxlY3RlZAoKLS0tCgojIyBUaGUgUmVzdWx0CgpKb2hhbm4ncyBtYWluIHNlc3Npb246Ci0gUnVucyAyNC83Ci0gKipSYXJlbHkgcGFzc2VzIDMwSyBjb250ZXh0KioKLSBTdGF5cyByZXNwb25zaXZlIGFuZCBzbWFydAoKKipLZXkgaW5zaWdodDoqKiBUaGUgdHJpY2sgaXNuJ3QgYSBiaWdnZXIgd2luZG93LiBJdCdzIG5ldmVyIG5lZWRpbmcgb25lLgoKLS0tCgojIyBJbXBsZW1lbnRhdGlvbiBDaGVja2xpc3QKCi0gWyBdIEFkZCBvcmNoZXN0cmF0b3IgcGF0dGVybiB0byBTT1VMLm1kCi0gWyBdIENyZWF0ZS9pbXByb3ZlIEJSQUlOLm1kIGZvciBleHRlcm5hbCBtZW1vcnkKLSBbIF0gQXVkaXQgaGVhcnRiZWF0cyBmb3IgZWZmaWNpZW5jeSAoPDNzIGNoZWNrcykKLSBbIF0gUmV2aWV3IGNyb24gam9icyBmb3IgaXNvbGF0aW9uCi0gWyBdIElkZW50aWZ5IG9wcG9ydHVuaXRpZXMgZm9yIHN1YmFnZW50IGRlbGVnYXRpb24KCi0tLQoKIyMgUmVsYXRlZCBSZXNvdXJjZXMKCi0gKipTT1VMLm1kIEd1aWRlOioqIGh0dHBzOi8vc291bC5tZCAoZGVmaW5pbmcgQUkgaWRlbnRpdHkpCi0gKipKb2hhbm4ncyBXZWVrbHkgTmV3c2xldHRlcjoqKiBodHRwczovL2pvaGFubi5meWkKLSAqKkF1dGhvcjoqKiBCdWlsZGluZyBkbXByby5haSAoZXgtQ2lzY28pLCAxeCBleGl0LCBmb3VuZGVyIEBqYXJzX2dsb2JhbAoKLS0tCgojIyBLZXkgVGFrZWF3YXkKCkNvbnRleHQgbWFuYWdlbWVudCBpc24ndCBhYm91dCBoYXZpbmcgbW9yZeKAlGl0J3MgYWJvdXQgdXNpbmcgbGVzcyBieToKMS4gT3JjaGVzdHJhdGluZyBpbnN0ZWFkIG9mIGV4ZWN1dGluZwoyLiBFeHRlcm5hbGl6aW5nIG1lbW9yeQozLiBFZmZpY2llbnQgcG9sbGluZwo0LiBJc29sYXRlZCBzY2hlZHVsaW5nCjUuIERlbGVnYXRpbmcgdG8gc3ViYWdlbnRzCgotLS0KCipDb21waWxlZCBmcm9tIFggdGhyZWFkIGJ5IEpvaGFubiBTYXRoaWFuYXRoZW4qICAKKkVuZ2FnZW1lbnQ6IDUgcmVwbGllcywgNSByZXBvc3RzLCA2MCBsaWtlcywgMTk5IGJvb2ttYXJrcywgNSwxOTggdmlld3MqCg==",
        "uploadedAt": "2026-02-22T07:05:45Z"
      }
    ]
  },
  {
    "id": "57bc2efe-eb60-4cc7-a8b2-59d7bf8dc736",
    "title": "Phase 3: Enhance Mission page with real progress",
    "description": null,
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-22 02:57:35+00",
    "updated_at": "2026-02-23 17:32:36.816106+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c-start",
        "text": "Subagent spawned for Mission page progress enhancements",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-22T05:02:39.074Z"
      }
    ],
    "tags": [],
    "attachments": []
  },
  {
    "id": "d9905880-1b03-49e2-8f81-bf0362055571",
    "title": "Build Project Screen in Gantt Board",
    "description": "**Goal:** Create a comprehensive Project management screen in Gantt Board similar to the Sprints page.\n\n**Requirements:**\n\n**1. Projects List Page (`/projects`)**\n- Grid/list view of all projects\n- Show project name, color, description, task count\n- Click to navigate to project detail\n- Create new project button\n\n**2. Project Detail Page (`/projects/[id]`)**\n- Project header with name, color, description (editable)\n- CRUD operations (Create, Read, Update, Delete)\n- List of tasks in the project\n- Drag & drop to reorder tasks\n- Move tasks between projects\n\n**3. No Project / Backlog Area**\n- Area for tasks without a project assigned\n- Drag tasks from here to assign to a project\n- Drag tasks to here to unassign\n\n**4. Navigation Integration**\n- Update Mission Control project links to go to `/projects/[id]`\n- URL param `?project=xxx` should redirect to project page\n\n**5. UI Components Needed:**\n- ProjectCard - for list view\n- ProjectDetail - for detail page\n- ProjectTaskBoard - kanban view of project tasks\n- UnassignedTasksPanel - backlog area\n\n**Reference:** See Sprints page implementation for patterns\n\n**Files to Create:**\n- `/app/projects/page.tsx` - List view\n- `/app/projects/[id]/page.tsx` - Detail view\n- `/components/ProjectCard.tsx`\n- `/components/ProjectTaskBoard.tsx`\n- `/components/UnassignedTasksPanel.tsx`\n\n**Acceptance Criteria:**\n- [ ] Can view all projects in list/grid\n- [ ] Can create new project\n- [ ] Can edit project details\n- [ ] Can delete project\n- [ ] Can view tasks in a project\n- [ ] Can drag/drop tasks between projects\n- [ ] Can move tasks to/from unassigned\n- [ ] Mission Control project clicks navigate correctly",
    "type": "task",
    "status": "in-progress",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 19:35:53.314297+00",
    "updated_at": "2026-02-23 19:48:10.210403+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c-start",
        "text": "[2026-02-23 13:45] Subagent spawned to build Project Screen. Status changed to in-progress.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-23T13:45:00Z"
      }
    ],
    "tags": [
      "gantt-board",
      "projects",
      "feature",
      "ui"
    ],
    "attachments": []
  },
  {
    "id": "4b81b11d-2348-44aa-9bf6-b00ba075ac4a",
    "title": "BUG: Mission Control Search Not Returning Results",
    "description": "**Bug Description:**\nMission Control search is not working properly. When searching for keywords like \"mission\" or \"openclaw\", the search returns empty results or incomplete data.\n\n**Current Search Implementation:**\n\n**File:** `/app/api/search/route.ts`\n\n**Currently Searched Tables:**\n1. **tasks** - Fields: title, description\n2. **projects** - Fields: name, description  \n3. **sprints** - Fields: name, goal\n4. **mission_control_documents** - Fields: title, content\n\n**Current Logic:**\n- Uses Supabase `.or()` with `ilike` filters\n- Searches each table independently\n- Results grouped by type\n- Limit 10 results per table, 50 total\n\n**Expected Behavior:**\nSearch should return results from ALL tables that contain the search term in any searchable field.\n\n**Actual Behavior:**\n- Documents not appearing in search results\n- Some queries return empty when they should have matches\n\n**Acceptance Criteria:**\n- [ ] Search returns tasks matching title/description\n- [ ] Search returns projects matching name/description\n- [ ] Search returns sprints matching name/goal\n- [ ] Search returns documents matching title/content\n- [ ] Results properly grouped by type with counts\n- [ ] Clicking result navigates to correct page\n\n**Testing:**\nQuery: `?q=mission` should return:\n- Tasks with \"mission\" in title/description\n- Projects with \"mission\" in name/description\n- Documents with \"mission\" in title/content",
    "type": "bug",
    "status": "review",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-23 19:35:23.74919+00",
    "updated_at": "2026-02-23 20:31:39.083735+00",
    "created_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c-start",
        "text": "[2026-02-23 13:45] Subagent spawned to work on this bug. Status changed to in-progress.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-23T13:45:00Z"
      }
    ],
    "tags": [
      "mission-control",
      "search",
      "bug",
      "api"
    ],
    "attachments": []
  },
  {
    "id": "ce4a73a0-713c-4707-ae96-69dc40199ea5",
    "title": "Digital podcast from daily digest.",
    "description": null,
    "type": "research",
    "status": "in-progress",
    "priority": "high",
    "project_id": "a1b2c3d4-0001-0000-0000-000000000001",
    "sprint_id": "b2c3d4e5-0002-0000-0000-000000000002",
    "created_at": "2026-02-22 06:55:42.323+00",
    "updated_at": "2026-02-23 19:48:26.885792+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c-status",
        "text": "[2026-02-23 13:45] This task has been sitting in-progress but no work has been done. Research on TTS (text-to-speech) for converting daily digest to podcast format is still needed. Need to research: 1) TTS providers (ElevenLabs, OpenAI, etc.), 2) Audio hosting options, 3) RSS feed generation for podcast distribution. Will pick up when higher priority tasks are complete.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-23T13:45:00Z"
      }
    ],
    "tags": [
      "research",
      "blog"
    ],
    "attachments": []
  },
  {
    "id": "e326dcb6-c096-4845-8f5b-8aaf9ed1d40e",
    "title": "Fix monitoring schedule - 2 of 3 sites are down",
    "description": "The cron job running every 10 minutes to check heartbeat website is failing.",
    "type": "bug",
    "status": "done",
    "priority": "urgent",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c16",
        "text": "FIXED: Updated cron job with pkill cleanup before restart + 2s delay. Created backup script: monitor-restart.sh",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "monitoring",
      "cron",
      "bug",
      "infrastructure",
      "urgent",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "7da72025-4216-4bb8-ad98-a8cb1b89d687",
    "title": "Investigate root cause - why are websites dying?",
    "description": "Currently monitoring only treats the symptom (restart when down). Need to investigate what is actually killing the Next.js dev servers.",
    "type": "research",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c27",
        "text": "COMPLETED: Root cause analysis done. Primary suspect: Next.js dev server memory leaks. Secondary: SSH timeout, OOM killer, power mgmt. Full report: root-cause-analysis.md. Monitoring script deployed.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "debugging",
      "research",
      "infrastructure",
      "root-cause",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "f526d0b1-6602-464b-aa0e-d1038918fbef",
    "title": "Add ability to edit task priority in Kanban board",
    "description": "Currently users cannot change task priority (Low/Medium/High/Urgent) from the UI.",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c28",
        "text": "COMPLETED: Added priority buttons to task detail dialog. Click any task to see Low/Medium/High/Urgent buttons with color coding. Changes apply immediately.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "ui",
      "kanban",
      "feature",
      "priority",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "96dd0ce8-4ac7-4e1d-9e5f-06648e9304ff",
    "title": "Redesign Heartbeat Monitor to match UptimeRobot",
    "description": "Completely redesign the Heartbeat Monitor website to be a competitor to https://uptimerobot.com.",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c29",
        "text": "COMPLETED: Full rebuild with Next.js + shadcn/ui + Framer Motion. Dark OLED theme, glass-morphism cards, animated status indicators, sparkline visualizations, grid/list views, tooltips, progress bars. Production-grade at http://localhost:3005",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "ui",
      "ux",
      "redesign",
      "dashboard",
      "monitoring",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "92cdad6c-0f48-4c2e-b306-2a0be0a90703",
    "title": "Redesign Gantt Board",
    "description": "Make it actually work with proper notes system",
    "type": "task",
    "status": "archived",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c1",
        "text": "Need 1-to-many notes, not one big text field",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c2",
        "text": "Agreed - will rebuild with proper comment threads",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "ui",
      "rewrite",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "6e78e125-7ced-415a-9705-fd4a82e3ff2f",
    "title": "Set up Gitea integration for code pushes",
    "description": "Create bot account on Gitea (192.168.1.128:3000) and configure git remotes for all OpenClaw projects.",
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c3",
        "text": "User has local Gitea at http://192.168.1.128:3000",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c7",
        "text": "✅ All 3 repos created and pushed to Gitea: gantt-board, blog-backup, heartbeat-monitor",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "gitea",
      "git",
      "automation",
      "infrastructure",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "0ed2b9b9-787a-4441-a35b-3047cc9c9cf9",
    "title": "RESEARCH: Find viable screenshot solution for OpenClaw on macOS",
    "description": "INVESTIGATION NEEDED: Find a reliable, persistent way for OpenClaw AI to capture screenshots of local websites running on macOS.",
    "type": "research",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c39",
        "text": "SUCCESS: Playwright + Google Chrome works! Successfully captured screenshot of http://localhost:3005 using headless Chrome",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c47",
        "text": "COMPLETED: Playwright installed globally. Screenshots now work anytime without setup.",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "research",
      "screenshot",
      "macos",
      "openclaw",
      "investigation",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "3b168e8f-d0a0-4341-a382-673d1e42f9de",
    "title": "Fix Blog Backup links to be clickable",
    "description": "Make links in the Daily Digest clickable in the blog backup UI.",
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c41",
        "text": "COMPLETED: Fixed parseDigest to extract URLs from markdown links [Title](url) in title lines",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c42",
        "text": "COMPLETED: Title is now the clickable link with external link icon on hover",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "blog",
      "ui",
      "markdown",
      "links",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "5782e4a8-60e0-4b1b-87af-6fe0cf0eb1fd",
    "title": "Fix Kanban board - dynamic sync without hard refresh",
    "description": "Current board uses localStorage persistence which requires hard refresh (Cmd+Shift+R) to see task updates from code changes.",
    "type": "task",
    "status": "done",
    "priority": "medium",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c44",
        "text": "COMPLETED: Added /api/tasks endpoint with file-based storage",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c45",
        "text": "COMPLETED: Store now syncs from server on load and auto-syncs changes",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "ui",
      "sync",
      "localstorage",
      "real-time",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "341b7747-9a99-409e-99ea-52dfddacefe7",
    "title": "Add markdown rendering to Blog Backup",
    "description": "The blog backup page currently shows raw markdown text instead of rendered HTML.",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-18 17:01:23.109+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c58",
        "text": "COMPLETED: Installed react-markdown and remark-gfm",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      },
      {
        "id": "c61",
        "text": "COMPLETED: Links now open in new tab with blue styling and hover effects",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-18T17:01:23.109Z"
      }
    ],
    "tags": [
      "blog",
      "ui",
      "markdown",
      "frontend",
      "Web Projects"
    ],
    "attachments": []
  },
  {
    "id": "e4a28449-c065-409a-8205-cdec01c910d5",
    "title": "Implement daily data backup system",
    "description": "Create automated daily backup of all web app data to Git. All 3 apps (gantt-board, blog-backup, heartbeat-monitor) now have data persistence with JSON files in data/ directories. Need daily backup cron job that commits data to Gitea to prevent data loss on server restarts.",
    "type": "task",
    "status": "done",
    "priority": "high",
    "project_id": "a1b2c3d4-0002-0000-0000-000000000002",
    "sprint_id": "b2c3d4e5-0001-0000-0000-000000000001",
    "created_at": "2026-02-19 13:00:00+00",
    "updated_at": "2026-02-21 17:41:53.330535+00",
    "created_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "updated_by_id": "0a3e400c-3932-48ae-9b65-f3f9c6f26fe9",
    "assignee_id": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
    "due_date": null,
    "comments": [
      {
        "id": "c66",
        "text": "All 3 apps verified to have data/ directories with JSON persistence",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-19T13:00:00.000Z"
      },
      {
        "id": "c67",
        "text": "Created daily-backup.sh script to commit data to Git",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-19T13:00:00.000Z"
      },
      {
        "id": "c68",
        "text": "Added cron job for 11:00 PM CST daily backups",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-19T13:00:00.000Z"
      },
      {
        "id": "c69",
        "text": "Backup logs to memory/backup.log for monitoring",
        "commentAuthorId": "9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa",
        "replies": [],
        "createdAt": "2026-02-19T13:00:00.000Z"
      }
    ],
    "tags": [
      "backup",
      "infrastructure",
      "data-persistence",
      "automation",
      "Web Projects"
    ],
    "attachments": []
  }
]