Skip to content

Publish garden episode proxies with listener views - #12

Merged
codekiln merged 19 commits into
mainfrom
codex/gitp-episode-proxies
Oct 7, 2026
Merged

codekiln merged 19 commits into
mainfrom
codex/gitp-episode-proxies

Conversation

@codekiln

@codekiln codekiln commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Episode pages now present the artwork, recording player, description and MicroFreak preset downloads directly in the editable Gitpa Logseq graph. The episode bodies and Podcast/Episode definition are imported through the real proxy sync task from garden PR #198 — simplify listener episode pages. Desktop config.edn displays only logseq-entity and date-created; publication and proxy properties remain stored for querying, feed generation and future syncs.

The imported sync task includes garden PR #199 — preserve proxy identity across worktrees. Imports from both dependency worktrees retain the registered graph name while source links identify the dependency branch. Re-sync from the registered garden checkout after the upstream PRs merge to refresh source links to main.

RSS accepts the direct recording link and retains support for older embedded recording pages. Existing episode GUIDs, publication times and rss.xml are unchanged. Website preparation retains selected-note filtering and the homepage lists public episodes by publication time.

Validation: 23 offline Python tests pass, including direct recording and duplicate recording regressions; the actual Logseq homepage query passes with timezone and unpublished fixtures; live anonymous MP3 metadata passes scripts/build_rss.py --check; source bodies and protected publication properties match the expected originals. The desktop property set leaves only the requested properties visible. Anonymous November artwork, recording and preset URLs return HTTP 200 with expected content types; the recording range probe returns HTTP 206 with an MP3 header. Native desktop verification of the November 19 episode passed after graph refresh: artwork loaded, only date-created and logseq-entity displayed, preset downloads stayed on the page, and muted playback advanced before being paused. Other episode playback was not individually exercised.

Closes #13. Depends on garden PR #198 and PR #199 before publication.

--AI(gpt-6-unspecified Gitpa listener pages)

Comment thread gitp-garden/pages/GitP___A___Session___24___11___19-Tue.md Outdated
@codekiln codekiln changed the title Publish four GitP sessions from garden proxies Publish garden episode proxies with listener views Oct 5, 2026

@codekiln codekiln left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address the issues

Comment thread gitp-garden/pages/GitP___A___Session___24___11___19-Tue.md Outdated
Comment thread gitp-garden/pages/Ghost in the Patch.md Outdated
Comment thread gitp-garden/pages/GitP___A___Session___24___11___19-Tue.md Outdated
codekiln and others added 5 commits October 6, 2026 05:38
Every gitpa proxy page now comes from logseq:entity:proxy:page:sync run
against logseq-encode-garden main plus codekiln/logseq-encode-garden#192,
which keeps the source checkout's path out of the manifest. Bodies were
already identical to the garden; the run refreshed the sync date, brought
the new Executable sync section of Logseq/Entity/Proxy/Page, and imported
the task, its entity definitions and the import manifest. Mise now
discovers the imported task from gitp-garden/mise-tasks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Logseq rewrites (pull ?b [*]) to its block attribute list, which omits
:block/name, so the published homepage view failed with "Cannot read
properties of null (reading 'replace')". The query check now applies
the same rewrite before running the query, and fails on the old query.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vendors logseq:entity:proxy:page:sync from codekiln/logseq-encode-garden#193
and re-syncs every proxied page. Session and asset pages are unchanged; the
entity definitions gain entity-proxy-destination-properties::.

Refs #14

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logseq:entity:proxy:page:sync --follow-embeds syncs a session with its
embedded asset pages, so gitpa no longer needs its own sync. The page
helpers the RSS and site builds share move to scripts/logseq_page.py.

Closes #14

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Retire episode:sync in favor of the garden proxy sync task
@codekiln

codekiln commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

the [[Ghost in the Patch]] page now renders the query correctly:
image

@codekiln

codekiln commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner Author

The assets are working

In my prior comments, I mentioned that gifs weren't showing up, mp3s weren't playing, and microfreak patches weren't downloading. All that is fixed. Great!

Episode pages are still kind of a mess

As of right now, the episode pages are still visually very confusing for humans viewing the pages:

image

Like I mentioned in my comment before, there way too many details in the episode pages.

My expectation is that an average listener of synth music may, upon listening to an episode, click through to the episode page that looks immediately intelligible and obvious that they are the target audience for that page. They should see a simple page that shows a graphic (if applicable), that allows them to play the mp3 in the page, and that allows them to download the microfreak patches, without navigating to other pages. They might see a description.

  1. Logseq config.edn should be updated to hide irrelevant properties. The only properties I want displayed are logseq-entity and date-created.

  2. Don't use logseq page embeds or logseq page links for the details. Instead, embed links directly in markdown, like they used to be:

image image

Of course, these changes should be made to the "upstream" pages in logseq encode garden, then the local proxies should be updated from those changes.

Also, in the upstream version, you should update the entity definition for a gitpa podcast episode to record these preferences.

Then you should bring those changes from upstream into this PR, so that when I view this branch and worktree's garden in Logseq, I can verify that everything looks appropriately.

Import direct media links and worktree-safe proxy sync from the upstream garden. Hide desktop publication properties and support direct recording links in RSS.
@codekiln

codekiln commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner Author

Updated the actual editable Gitpa garden for the requested listener simplification in e1d5ea0 — simplify synced listener episode pages.

The four episode bodies and Podcast/Episode definition were synced from garden PR #198 with the imported mise run logseq:entity:proxy:page:sync task; the worktree identity fix is imported from garden PR #199. Episode artwork, MP3 and preset links are now direct Markdown links in the checked-in graph. The desktop config hides administrative properties, leaving date-created and logseq-entity visible.

Validation passed: offline tests, the real homepage query and live RSS metadata; the existing feed is unchanged. Anonymous media metadata and MP3 range responses succeed. Native desktop verification of the November 19 episode passed after graph refresh: artwork loaded, only the requested properties appeared, all direct preset links stayed on-page, and muted playback advanced before being paused. Other episode playback was not individually exercised.

Agent gitpa_listener; session 01a110f1-45c5-7633-ad92-c6f9f7f131d8; branch codex/gitp-episode-proxies; worktree /Users/Myer/ghq/github.com/codekiln/gitpa/.worktree/gitp-episode-proxies; editable graph gitp-garden under that worktree. Merge the upstream dependency PRs, then re-sync from the registered garden checkout before publication.

--AI(gpt-6-unspecified Gitpa listener pages)

@codekiln codekiln Oct 7, 2026 •

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I've read about this idea of a .logseq-proxy/manifest.json yet. Where is it specified in the entities system documentation in logseq-encode-garden?

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The manifest was specified by PR #186 companion task contract on the Proxy Page entity and sync task reference. The current illustrated manifest explanation details the sections and update checks. Source PR #203 makes this easier to find with a dedicated Import manifest subsection in the entity definition; the Gitpa worker is importing that source through sync.

--AI(gpt-6-unspecified Proxy task import review)

@@ -0,0 +1,269 @@
"""Import explicitly declared file tasks with conservative update ownership."""

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This docstring and this filename don't tell me what this file does. Please review my communication preferences and rules and revise.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Source PR #203 renames the module to task_imports.py and describes the entity/task references it follows, the executable files it plans to import, and its manifest ownership checks. It updates the entrypoint, declared task-file mapping, and source links. A migration test runs the imported task after the rename and verifies repeat sync. The Gitpa worker is importing this fix through sync.

--AI(gpt-6-unspecified Proxy task import review)

return hashlib.sha256(data).hexdigest()


def compatible_config(root):

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a docstring.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Source PR #203 adds the docstring: the function reads the destination Mise configuration and requires an explicit includes list to contain mise-tasks; an absent setting uses Mise default task discovery. Tests cover accepted path variants, excluded task discovery, and malformed TOML. The Gitpa worker is importing the documented helper through sync.

--AI(gpt-6-unspecified Proxy task import review)

@codekiln
codekiln merged commit 0ff62dd into main Oct 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Render clean podcast pages from garden proxies

1 participant