Goal conversion, category dialog, cycle band — and the celilo_contract 2.0 migration #73
No reviewers
Labels
No labels
area/auth
area/backend
area/ci
area/deploy
area/e2e
area/frontend
area/shared
blocked
good-first-issue
needs-info
priority/high
priority/low
priority/medium
type/bug
type/chore
type/docs
type/feature
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
celilo/lunacycle!73
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix-e2e-seed-unique"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Long-running branch, now 348 commits ahead of
main. Opening it so the work is reviewable rather than sitting in a dirty tree.Two distinct things in here
1. Feature work (peba's). Goal conversion (
goal-conversion.ts,goals.ts,appRouter.ts,updateTasks.ts),AddCategoryDialog→CategoryDialog, a newFuelGauge,GoalBarandLunarCycleProgressBandrework,cycle-dateshelpers,useLunarPhasechanges, new e2e specs for category-edit and goal-conversion, new unit tests for cycle-band and goal-conversion, plus openspec slice-driven schemas and the.beads/.piagent wiring.2.
celilo_contract2.0 migration — this one needs a careful read.celilo-mgr runs CLI 5.1.0, which retired
celilo_contract1.0, so this module is currently undeployable: any deploy fails aton_installwithUnsupported celilo_contract version '1.0'. Supported: 2.0.The bump was not safe on its own.
on_installminted an authentik API token and returned it for celilo to persist as the module secretsmoketest_bot_token. Contract 2.0 retires exactly that channel — the value is persisted nowhere and the deploy still reports success. A blanket bump would have shipped precisely the silent loss the retirement exists to surface.The correct port here was deletion, not
secrets.set:health-check.ts,smoke-handler.tsandscripts/smoke/authentik-token.tseach document why an authentik API token cannot drive the smoke path, which authenticates by OIDC loginThe mint and its log line are kept; removing those is a behavioural change beyond this migration.
The test now asserts the hook returns
{}, and that assertion is proven to fail: re-introducing the assignment turns 11 pass into 10 pass / 1 fail.Gates on the module:
typecheck:hooks0,test:hooks69 pass / 0 fail,lint0.Not included
.beads.gate.lockis left uncommitted — it is a transient lock, not source.After merge
manifest.ymlis at 1.4.3 with contract 2.0. Publishing needs a site build, becausesite/distis gitignored and the module ships its built site — which is also why lunacycle currently reads ERROR on the fleet (no built site at /var/celilo/modules/lunacycle/site/dist).Part of the fleet-wide migration: celilo#1419, bead
ce-h2w0.celilo-mgr runs CLI 5.1.0, which retired celilo_contract 1.0, so this module was undeployable: any deploy failed at on_install with 'Unsupported celilo_contract version 1.0. Supported: 2.0'. The bump was NOT safe on its own. on_install minted an authentik API token and returned it as a hook output, relying on celilo to persist it as the module secret `smoketest_bot_token`. Contract 2.0 retires exactly that channel: the value is persisted nowhere and the deploy still reports success, which is the silent loss the retirement exists to surface. The correct port here is deletion, not `secrets.set`. Nothing reads the secret: health-check.ts, smoke-handler.ts and scripts/smoke/authentik-token.ts each document why an authentik API token cannot drive the smoke path, which authenticates by OIDC login instead. The name was never declared in the manifest either, so there was nothing to persist it against. The mint and its log line are kept — they provision the bot in authentik, and removing that is a behavioural change beyond this migration. The test asserts the hook returns {}. Verified it can fail: re-introducing the assignment turns 11 pass into 10 pass / 1 fail. Gates: typecheck:hooks 0, test:hooks 69 pass / 0 fail, lint 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>Closing as superseded. The feature code (goal conversion, CategoryDialog, FuelGauge, cycle band) is already on
mainvia690074b, and the celilo_contract 2.0 migration landed in #74. The only branch-unique content is agent wiring (.beads,.pi,AGENTS.md,CLAUDE.mdadditions), which can go in a small PR frommainif wanted.Pull request closed