Changeset 5e52448 in Klonkt


Ignore:
Timestamp:
07/01/2026 10:28:29 PM (2 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
e67828e
Parents:
3b4095f
Message:

chore: tracker housekeeping

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • .beads/issues.jsonl

    r3b4095f r5e52448  
    1919{"_type":"issue","id":"prutfolio-src-2t1","title":"Agenda: richer event types","description":"Extend shows/agenda with event types (show large/small, signing, workshop, generic) and fields like tickets/participation, location, theme, notes. Possibly external calendar integrations later.","status":"open","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T22:03:02Z","created_by":"roboburr","updated_at":"2026-07-01T22:03:02Z","dependency_count":0,"dependent_count":0,"comment_count":0}
    2020{"_type":"issue","id":"prutfolio-src-wsp","title":"Header: optional store/merch link","description":"A per-site setting for a generic store link in the header (external shop). Small; fits the merch strategy.","status":"open","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T22:03:01Z","created_by":"roboburr","updated_at":"2026-07-01T22:03:01Z","dependency_count":0,"dependent_count":0,"comment_count":0}
    21 {"_type":"issue","id":"prutfolio-src-krm","title":"SEO: og:image light/dark override setting","description":"1.2.0 picks the OG card variant from the site default theme; add an explicit light/dark override in Admin -\u003e SEO. Phase 1.","status":"open","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T22:02:56Z","created_by":"roboburr","updated_at":"2026-07-01T22:02:56Z","dependency_count":0,"dependent_count":0,"comment_count":0}
     21{"_type":"issue","id":"prutfolio-src-krm","title":"SEO: og:image light/dark override setting","description":"1.2.0 picks the OG card variant from the site default theme; add an explicit light/dark override in Admin -\u003e SEO. Phase 1.","status":"closed","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T22:02:56Z","created_by":"roboburr","updated_at":"2026-07-01T22:28:28Z","closed_at":"2026-07-01T22:28:28Z","close_reason":"Built on main: Admin -\u003e SEO has an og:image variant override (Auto/Light/Dark); OgImageService honours it over the site theme. Verified: saving Light regenerates a different card.","dependency_count":0,"dependent_count":0,"comment_count":0}
    2222{"_type":"issue","id":"prutfolio-src-vyr","title":"Polls phase 2: create your own polls (outbound Question)","description":"Phase 1 (inbound: show + vote on remote polls in the News feed) shipped. Phase 2 = author your own polls:\n- Post editor: a poll post type (2-8 options + a duration / endTime, single vs multiple choice).\n- DB: poll_options + poll_votes (one vote per remote actor enforced).\n- buildNote -\u003e emit a Question (oneOf/anyOf of Note options each with replies.totalItems, endTime, votersCount) instead of a Note; declare votersCount/toot terms in AP_CONTEXT (AS2-validity test).\n- Inbound votes: a Create(Note) with name + inReplyTo our Question -\u003e tally.\n- Update(Question) delivery to refresh counts on remote caches; enforce endTime (closed); show results on-site.\nReuses the delivery/queue + interaction machinery. No anti-steal tension (text/interaction, no audio file).","status":"closed","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T07:43:41Z","created_by":"roboburr","updated_at":"2026-07-01T22:02:23Z","closed_at":"2026-07-01T22:02:23Z","close_reason":"Built 2026-07-01: posts can carry a poll that federates as an AS2 Question (oneOf/anyOf, endTime, votersCount), inbound ballots tallied + Update(Question) pushed, scheduler closes on endTime, voting also from the interact page. On main.","labels":["fediverse","polls"],"dependency_count":0,"dependent_count":0,"comment_count":0}
    2323{"_type":"issue","id":"prutfolio-src-7cz","title":"Discovery: how Klonkt users find each other (klonkt.com hub + discoverable + FoF)","description":"Turn klonkt.com from a static salespage into the network's front door WITHOUT\nbecoming a content host. Decided direction: Form B (a map/lens over the network),\nNOT Form A (a multi-user signup server — that takes on the host/moderation/liability\nrole we deliberately avoided; that path is managed hosting, a separate business\ndecision, not this).\n\n## What\n- A `discoverable` per-site toggle (Beheer) that sets `discoverable: true/false` on\n  the site's ActivityPub actor (AS2/Mastodon-standard property, already declared in\n  AP_CONTEXT). Opt-in = clean GDPR consent basis. Honored locally by other instances.\n- Phase 1: opt-in artist directory on klonkt.com — pointers only (avatar, name, genre,\n  link). No accounts, no hosted content.\n- Phase 2: network feed — a Klonkt \"network\" actor that FOLLOWS the opt-in artists;\n  their public posts land in its ap_timeline and render as a browsable \"what's\n  happening on Klonkt\" feed. Reuses existing AP machinery (inbox, follow, timeline\n  cache, Delete/Tombstone handling, offline-instance handling) — little new code.\n- Optional: an AP relay so new instances can plug into the public firehose (cold-start),\n  and/or a single-user showcase Klonkt instance next to the salespage as a live demo.\n\n## Why (discovery)\nSingle-user-per-server (our model) has no local timeline, so discovery is inherently\nharder than Mastodon. Layered approach: (0) plain fediverse, (1) friend-of-a-friend\nover the Cirkel graph, (2) auto-detect fellow Klonkt instances via NodeInfo, (3)\ngenre/hashtag browse, (4) this central opt-in on-ramp for cold-start. This issue = layer 4.\n\n## Invariants\n- No auto-follow / auto-boost — discovery = suggestions the user clicks, never an\n  automatic outward action (the no-auto-fediverse rule).\n- Gracefully degrade — a lonely instance still works; discovery is a plus.\n- Opt-in per site (`discoverable`), honored locally; not-discoverable != private\n  (an AP actor is always followable if you know the handle).\n- Scale-safe: cache NodeInfo, use the SSRF guard (safeFetch), prune.\n\n## Maintenance / GDPR (assessed light)\n- Tech: one more pm2 service in the klonkt-stats pattern; reuses the AP stack. Low.\n- GDPR: only public, self-published, opt-in content; we are a cache/lens, not the\n  origin; federated Delete/Tombstone already drops cached posts (erasure largely\n  automatic). Need: a delist/opt-out path, data minimization + pruning, a\n  privacy-policy paragraph (klonkt.com/privacy exists), a takedown contact\n  (info@robingenis.com). Materially lighter than Form A.\n- Moderation: delist a spammy instance = drop the follow (remove a pointer), reversible.\n\n## Suggested order\n1. `discoverable` toggle (Beheer -\u003e actor). Cheap, standalone.\n2. \"Discover: neighbours of your Cirkel\" strip on /cirkel (layer 1, friend-of-a-friend)\n   that honors `discoverable`. Most \"aha\" per effort, fully decentralized, no klonkt.com.\n3. klonkt.com opt-in directory (pointers-only).\n4. klonkt.com network feed (network actor follows opt-in artists) + optional relay.\n","status":"open","priority":3,"issue_type":"feature","owner":"roboburr@gmail.com","created_at":"2026-07-01T00:34:33Z","created_by":"roboburr","updated_at":"2026-07-01T00:34:33Z","labels":["discovery","fediverse"],"dependency_count":0,"dependent_count":0,"comment_count":0}
Note: See TracChangeset for help on using the changeset viewer.