Admin – ihaveanidea

User

Email: mark@mark-christensen.com

ID: 6403f2eb-18b4-45ee-b9af-eee2e0e93425

Created:

← Back to Account

Password

Set. This account can log in.

API Keys

App ID Created Actions
android:2dd0d69cf5d5178e
desktop:38ded643-95fb-489f-969c-7871359f7c40

Definitions

User-defined idea types and task types (0.11.0). Read-only here — created and edited on the clients' Types page, synced via definition.* CRDT ops.

Kind Name Built-in Data
idea_status Dream yes {"builtin_slug":"dream","schema":1}
idea_status In Progress yes {"builtin_slug":"in-progress","schema":1}
idea_status Stable yes {"builtin_slug":"stable","schema":1}
idea_status Finished yes {"builtin_slug":"finished","schema":1}
idea_status Need $ — {"schema":1.0}
idea_status Paused — {"schema":1.0}
idea_type Software yes {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"builtin_slug":"software","schema":1,"task_type_ids":["818ca193-82c3-5d3d-8976-2b0b8359226f","a57ca2a4-d396-587e-b1bb-1615090d015a","83776309-6f31-52b1-89ab-fce3a072eef9","7a52c188-6cda-58d0-9872-9aafb05b81ce","e78f0a74-c1b4-5a2d-aa37-0978495fb462"]}
idea_type App — {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"schema":1,"task_type_ids":["818ca193-82c3-5d3d-8976-2b0b8359226f","a57ca2a4-d396-587e-b1bb-1615090d015a","83776309-6f31-52b1-89ab-fce3a072eef9","7a52c188-6cda-58d0-9872-9aafb05b81ce","e78f0a74-c1b4-5a2d-aa37-0978495fb462"]}
idea_type Service — {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"schema":1,"task_type_ids":["818ca193-82c3-5d3d-8976-2b0b8359226f","a57ca2a4-d396-587e-b1bb-1615090d015a","83776309-6f31-52b1-89ab-fce3a072eef9","7a52c188-6cda-58d0-9872-9aafb05b81ce","e78f0a74-c1b4-5a2d-aa37-0978495fb462"]}
idea_type Site — {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"schema":1,"task_type_ids":["818ca193-82c3-5d3d-8976-2b0b8359226f","a57ca2a4-d396-587e-b1bb-1615090d015a","83776309-6f31-52b1-89ab-fce3a072eef9","7a52c188-6cda-58d0-9872-9aafb05b81ce","e78f0a74-c1b4-5a2d-aa37-0978495fb462"]}
idea_type Hardware — {"blocks":["concept","note","attachment","plan","task_list","release"],"schema":1.0,"task_type_ids":["818ca193-82c3-5d3d-8976-2b0b8359226f","83776309-6f31-52b1-89ab-fce3a072eef9","7a52c188-6cda-58d0-9872-9aafb05b81ce","e78f0a74-c1b4-5a2d-aa37-0978495fb462"]}
idea_type House — {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"schema":1.0}
idea_type Game — {"blocks":["concept","note","attachment","plan","task_list","release","asset"],"schema":1.0}
task_type Bug yes {"builtin_slug":"bug","schema":1}
task_type UX yes {"builtin_slug":"ux","schema":1}
task_type Feature yes {"builtin_slug":"feature","schema":1}
task_type Chore yes {"builtin_slug":"chore","schema":1}
task_type Docs yes {"builtin_slug":"docs","schema":1}

CRDT Messages

Scans all CRDT log rows for this user. Rows whose operation payload matches an earlier row (same normalized JSON) are removed; the lowest data_version for each payload is kept. This cannot be undone. Removing tail rows can lower server latest_version after the next client sync.

Version Type Inserted Operation
116 asset.create %{"agents_excerpt" => "# Repo-wide conventions\n\nThis repo holds multiple independently-buildable components (`service/`, `desktop/`, `android/`). See [service/AGENTS.md](service/AGENTS.md) for Phoenix/Elixir-specific guidelines.\n\n## Cross-cutting rules\n\n- **Mix always runs inside Docker.** There is no local Elixir/Erlang toolchain on the dev machine. Never run `mix` directly on the host — use `docker compose --profile tools run --rm mix <task>` from `service/`.\n- **Changelog discipline**: add an entry to `CHANGELOG.md` for every significant change, using the actual current date (YYYY-MM-DD) and the project/app version scheme described there.\n- **No shared-code package** between `service`, `desktop`, and `android`. Keep `PROJECT_DEFINITIONS.md` current — it is the mechanism that keeps the three independently-implemented clients consistent with each other.\n- **Commit messages**: concise, imperative mood, focused on why a change was made.\n", "agents_source_file" => "AGENTS.md", "git_default_branch" => "main", "git_remote_url" => "git@144.76.119.114:/home/git/ihaveanidea.git", "id" => "60b7deba-97a2-4667-829a-b1c6cfb6a17a", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T23:30:12Z", "label" => "Primary", "last_commit_at" => "2026-08-28 01:04:56 +0200", "last_commit_author" => "anonymous <anonymous@anonymo.us>", "last_commit_message" => "Fix 4 follow-up issues from testing", "last_commit_sha" => "5425abb6fc73ab00d65355fdf9489971261a44ad", "last_scanned_at" => "2026-08-27T23:30:12Z", "local_path" => "C:\\Users\\anonymous\\projects\\ihaveanidea", "readme_excerpt" => "# ihaveanidea\n\nTrack project ideas — software, physical-world, writing, anything — from a quick elevator pitch through implementation and \"release.\"\n\n## What It Does\n\n- **Ideas** are the top-level thing you track. Creating one only requires a **name** and a short **pitch** — the \"spark\" moment.\n- **Elements** are optional content you attach to an idea over time: a concept/spec writeup, a plan, a task list, release notes, freeform notes, attachments. There is **no enforced lifecycle** — elements can be added, edited, or skipped in any order. Presence of elements is the progress signal, not a status field.\n- **Category** is a free-form tag (e.g. `software`, `physical`, `writing`, `other`) — never a fixed enum.\n- **Assets**: the desktop app can link an idea to a local folder/git repo and extract metadata (repo name, remote, last commit, README/AGENTS excerpt). That metadata syncs to the account so it's visible read-only from the browser admin and Android, even though only desktop can see the filesystem.\n- **Local-first** desktop and Android apps sync with the service when connected, using the same CRDT-log approach as the reference project below.\n- **Single user** — this is a personal tool, not a multi-tenant product.\n\n## Key Decisions\n\n### Architecture\n\n| Decision | Choice |\n|----------|--------|\n| **Primary data store** | The service (Phoenix/Elixir) |\n| **Sync model** | CRDT-style whole-record last-write-wins upserts; operations stored for audit log |\n| **The service** | Single Phoenix codebase; API and admin run in separate Docker containers for independent scaling |\n| **Lifecycle model** | No status/stage FSM — ideas accumulate optional typed elements in any order |\n| **Build isolation** | Each component (service, Desktop, Android) builds independently — no shared-code package |\n\n### Technology Stack\n\nMirrors the sister project [panoptodo](../panoptodo), which this project's stack and repo conventions were deliberately modeled on.\n\n| Component | Stack |\n|---------", "repo_name" => "ihaveanidea", "source_device_app_id" => "desktop:38ded643-95fb-489f-969c-7871359f7c40", "type" => "asset.create", "updated_at" => "2026-08-27T23:30:12Z"}
115 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:29:13Z"}
114 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "8e85d31c-c5ab-4799-9fea-850bf541be87", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T06:51:54Z", "position" => 0, "title" => "UX: Adding items to plans or saving plans is hard on Android because the virtual keyboard covers them", "type" => "element.update", "updated_at" => "2026-08-27T23:29:13Z"}
113 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:29:02Z"}
112 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "33edc2ee-1d59-4c8f-b187-9c5a1e50ed49", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T00:22:15Z", "position" => 0, "title" => "Bug: [Android] Releases not showing in the UI. They say they are saving but they don't show", "type" => "element.update", "updated_at" => "2026-08-27T23:29:01Z"}
111 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:29:00Z"}
110 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "7ec9f857-d534-4664-8986-a5f4ba540a47", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T00:22:15Z", "position" => 0, "title" => "Bug: [Android] Can't add new tasks on the task list page", "type" => "element.update", "updated_at" => "2026-08-27T23:28:59Z"}
109 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:57Z"}
108 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "ecdd2b28-fef5-41f6-b012-4fada0717838", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-27T00:22:15Z", "position" => 0, "title" => "Several fields for an idea don't show when viewing it on the admin console. The entire Idea should be visible", "type" => "element.update", "updated_at" => "2026-08-27T23:28:56Z"}
107 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:50Z"}
106 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "17777ffa-0a5e-4121-bcb5-a25cf572fceb", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T10:45:14Z", "position" => 0, "title" => "[Desktop+Android] Trim whitespace from user input for all fields (tags, notes, etc)", "type" => "element.update", "updated_at" => "2026-08-27T23:28:50Z"}
105 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:46Z"}
104 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "9220e2f7-8ab2-4583-9270-79bb7771a92a", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T06:51:54Z", "position" => 0, "title" => "Bug: View time is never updated on Android? It always shows never viewed. Also, new Ideas don't get a viewed time in Desktop even though the user automatically is shown them when it is first created. The viewed time should be set at the same time.", "type" => "element.update", "updated_at" => "2026-08-27T23:28:45Z"}
103 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:42Z"}
102 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "40383746-c57e-46d5-ab08-932466378f06", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T10:57:04Z", "position" => 0, "title" => "Bug: [Android] The virtual keyboard covers the bottom content on the screen (whichever screen the user is on) making it impossible to access/see some things. Also, it pushes up the content a bit, so the user also can't scroll to the top of the view (if it's tall enough to go off the screen)", "type" => "element.update", "updated_at" => "2026-08-27T23:28:42Z"}
101 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:40Z"}
100 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "c920f761-70c8-4038-a449-1f71789c2e7b", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T06:51:54Z", "position" => 0, "title" => "Bug: [Desktop+Android] Shouldn't be able to go \"back\" while editing something like notes or a plan without a confirmation modal", "type" => "element.update", "updated_at" => "2026-08-27T23:28:40Z"}
99 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:37Z"}
98 element.update %{"data" => "{\"done\":true}", "element_type" => "task_list", "id" => "6f8572a8-6f59-4fd9-8e06-ba3fdfaa2714", "idea_id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-26T01:02:23Z", "position" => 0, "title" => "Bug: Adding new tasks doesn't change the last edited time? Doesn't seem to. Not sure if this is only Android or if it is true on Desktop too.", "type" => "element.update", "updated_at" => "2026-08-27T23:28:37Z"}
97 idea.update %{"archived" => false, "category" => "app", "id" => "2d97d724-fd45-4168-8c36-f8db6c05cbd0", "inserted_at" => "2026-08-25T23:21:27Z", "name" => "I have an idea", "pitch" => "Track all ideas through all stages of completion", "type" => "idea.update", "updated_at" => "2026-08-27T23:28:32Z"}
Previous Page 50 of 55 (1096 total) Next