Conversation
…loys Adds a manual trigger with an environment selector (prod / dev / both). On workflow_dispatch, prod job always checks out main; dev job always checks out dev — regardless of which branch the dispatch was triggered from. Useful for forcing a redeploy after Fly secrets change or when a push skipped the path filter.
fix(ci): add workflow_dispatch for manual force deploys
… endpoint
- Dockerfile: inject TETHER_VERSION=dev ARG+ENV so all services can
read the deployed tag at runtime
- fly-deploy.yml: auto-bump patch from latest vX.Y.Z git tag on each
prod deploy; push new tag after success. Dev builds use same base
version with -dev.{sha7} suffix, no tag pushed. fetch-depth: 0
required so git tag -l sees all existing tags.
- api/main.py: add unauthenticated GET /api/version endpoint
- pyproject.toml: reset version to 0.0.0 (start of proper semver)
- Dockerfile: TETHER_VERSION ARG+ENV baked into image at build time
- fly-deploy.yml: read TETHER_VERSION from pyproject.toml at deploy time;
dev builds append -dev.{sha7} suffix
- api/main.py: GET /api/version returns tether + premium versions
- scripts/release.sh: CLI release script (--patch/--minor/--major/--alpha)
- .github/workflows/release.yml: on tag push, create GitHub Release
feat(infra): add release versioning system
…#338) - DayTimeline: use fetchPlanRange(date, date) instead of fetchPlan after promoting a task to calendar. fetchPlan flips loading=true which causes PlanView's v-if="planStore.loading" to destroy and remount the entire plan grid — fixing the full-page flash (Bug 1) and between-anchor DnD appearing broken (Bug 3) simultaneously. - DayTimeline: replace local-naive ISO string construction with Date + setHours + toISOString() in handleSlotDrop. Local-naive strings like "2026-05-09T14:00:00" are treated as UTC by the backend, placing promoted events 7h early in PDT. Both the new-promotion path and the existing-event-move path are fixed (Bug 2). - DayTimeline: guard slotIndexFromClientY against non-finite clientY to prevent NaN propagation into Date construction (hardening). - CalendarView: add draggingTaskId ref + v-show + requestAnimationFrame deferral to sidebar task <li> elements. Mirrors AnchorBlock.vue pattern so the source task hides after the browser snapshots the drag ghost image, eliminating the source-flicker after drop (Bug 5). Tests: 14 DayTimeline DnD tests pass (3 new regression tests for UTC times and fetchPlanRange behavior, existing tests updated to use timezone-safe UTC assertions). Full suite: 591/591 passing.
* feat(infra): pin tether-premium via pypi index requirements files - requirements-premium.txt: prod pin (0.0.1 stable) - requirements-premium-dev.txt: dev pin (0.0.1a1 alpha) - Dockerfile: install premium from PREMIUM_REQUIREMENTS file via tether-pypi index; git credential config scoped to the RUN layer - fly-deploy.yml: dev deploy passes PREMIUM_REQUIREMENTS override; add requirements-premium*.txt to trigger paths * feat(infra): add update-premium-pin workflow for automated pin PRs
- DayTimeline: use fetchPlanRange(date, date) instead of fetchPlan after promoting a task to calendar. fetchPlan flips loading=true which causes PlanView's v-if="planStore.loading" to destroy and remount the entire plan grid — fixing the full-page flash (Bug 1) and between-anchor DnD appearing broken (Bug 3) simultaneously. - DayTimeline: replace local-naive ISO string construction with Date + setHours + toISOString() in handleSlotDrop. Local-naive strings like "2026-05-09T14:00:00" are treated as UTC by the backend, placing promoted events 7h early in PDT. Both the new-promotion path and the existing-event-move path are fixed (Bug 2). - DayTimeline: guard slotIndexFromClientY against non-finite clientY to prevent NaN propagation into Date construction (hardening). - CalendarView: add draggingTaskId ref + v-show + requestAnimationFrame deferral to sidebar task <li> elements. Mirrors AnchorBlock.vue pattern so the source task hides after the browser snapshots the drag ghost image, eliminating the source-flicker after drop (Bug 5). Tests: 14 DayTimeline DnD tests pass (3 new regression tests for UTC times and fetchPlanRange behavior, existing tests updated to use timezone-safe UTC assertions). Full suite: 591/591 passing.
… errors The inline @dragstart handler in CalendarView.vue's sidebar used requestAnimationFrame (not a component method) and draggingTaskId.value (.value doesn't exist on the template-unwrapped string | null type), causing three vue-tsc errors in the Docker build. Extract to onSidebarTaskDragStart() in script setup where draggingTaskId is correctly typed as Ref<string | null> and requestAnimationFrame is available as a global. Template now calls the function with the task, anchor id, and focusedDay as arguments.
…343) Multiline Python embedded in a YAML literal block causes GitHub's workflow parser to error -- lines at column-0 inside the $() subshell fall outside the block's indentation level. Replace both version-read steps with a single awk one-liner that is safe in any YAML parser.
* fix(infra): replace multiline python3 -c with awk in fly-deploy.yml Multiline Python embedded in a YAML literal block causes GitHub's workflow parser to error -- lines at column-0 inside the $() subshell fall outside the block's indentation level. Replace both version-read steps with a single awk one-liner that is safe in any YAML parser. * fix(infra): correct extra-index-url — drop /simple/ suffix The astariul/github-hosted-pypi template serves the package index from the repo root, not a /simple/ subdirectory. pip was getting 404 on every version lookup, reporting "from versions: none".
fix(frontend): fix 4 DnD bugs + CalendarView sidebar TS errors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.