What's Changed since v0.2.6
Member tier --days cap is 365, not unlimited
The PodLens server caps member tier --days at 365 days (was previously documented in askaipods as "unlimited" / "any value"). Passing --days 730 to a member-tier query is silently clamped to 365 by the server. v0.2.7 aligns askaipods's user-facing copy with that contract:
- CLI
--helptext now readsanonymous tier caps at 90; member tier caps at 365instead ofanonymous tier caps at 90; member tier accepts any value. - README's tier-comparison table reads
90 days | 365 daysfor the--dayscap row (was90 days | Unlimited). - The agent skill spec (
skill/askaipods/SKILL.md) reads--days lookback up to 365 days (omit --days for all-time results)in the frontmatter requirements and the closing anonymous-tier note. The agent guidance also tells the agent to pass the cap value rather than a larger number when the user's intent ("last 2 years", "since 2024") would exceed the cap, and to disclose the clamp in its response. - The CLI's anonymous-tier markdown footer (
format.jsANONYMOUS_NOTE) was updated to match:--days up to 365 (or omit for all-time).
meta.restrictions for member tier is {max_days: 365}, not null
The server now returns a member-tier meta.restrictions object ({max_days: 365}) rather than the historical null. The skill spec's field description and JSON shape example were corrected. The skill's success-envelope validator already accepted both shapes, so this is a documentation fix only — no runtime behavior change in the CLI.
Skill spec hardening (agent-facing only)
- Empty-result error-handling priority ladder and freshness-banner rules now use optional chaining (
meta.warning?.code,meta.window?.truncated,meta.window?.expanded) so an agent codifying the ladder doesn't throw when the server omits an optional field. Added a leading sentence naming the nullable fields and pointing at the step-6 fallback. - The dual-view render template ("🆕 Latest 5" / "🎯 Top 5 Most Relevant") tells the agent to render up to 5; when fewer results return (the server may return
window.reason_code: "expanded_partial_fill"or fire a freshness warning), drop the "5" from the heading and never pad or fabricate. - The "expanded === true && results empty" branch is now qualified with
window.truncated !== true. Whentruncated === true, expansion was aborted mid-way by a transient Vectorize error rather than running the full window plan, so the agent should tell the user to retry rather than rephrase. - The shell-string fallback example replaced the
"<USER QUERY>"placeholder with<SHELL_QUOTED_QUERY>plus aprintf %qworked example, since the prior placeholder could be misread as "wrap the query in double quotes" — which is not safe ($VARand backticks still expand inside double quotes). The argv-array form (the preferred path) is unchanged. - The JSON shape example is now labeled as a member-tier response, with anonymous-tier differences enumerated above the example. The example uses concrete
tier: "member"/render_hint: "dual_view"values rather than union syntax. - The
api_rankfield description clarifies tier-specific semantics: for member tier,api_rank1 = most semantically relevant; for anonymous tier,api_rankreflects temporal order (1 = newest). - The "Output exactly this structure" preamble notes that parenthetical render notes and
<placeholder>tokens inside the fenced templates are author guidance — agents must replace placeholders with values from the JSON response and must not include the parentheticals in the user-facing output. - The closing anonymous-tier template's "20 results" was changed to "up to 20 results" for consistency.
Honest limitations (unchanged from v0.2.6)
- No speaker attribution in the API response.
- No episode URLs in the API response.
- AI-focused corpus.
- Short quote excerpts, not full transcripts.
Deferred to v0.2.8+
.github/workflows/auto-tag.ymlhas a single-commit assumption that fails when thepackage.jsonversion bump and the body of the release land in two separate commits — the workflow comparesHEADtoHEAD~1, which sees no version change after a checkpoint+final commit pair. v0.2.7 was tagged manually; a future release should switch the workflow to comparing across the entire push range (github.event.before…github.event.after).- The JSON shape example timestamp
next_reset: "2026-04-21T00:00:00Z"is illustrative and now in the past — refresh in a future doc-polish pass.
Changed Files
README.md, package.json, skill/askaipods/SKILL.md, src/cli.js, src/client.js, src/format.js. No production logic changed beyond the version-string bump and the format.js ANONYMOUS_NOTE wording — the rest is documentation, agent guidance, and --help text.
Full Changelog: v0.2.6...v0.2.7