Repository navigation
feat(mecatui): bound schedule browsing on the shared surface - #2398
Merged
Merged
Conversation
Contributor
Author
Final design decisions
These decisions supersede the earlier implementation plans. The PR description owns the final scope, verification, compatibility assessment, and remaining limitations. |
jbeda
force-pushed
the
impl/2173-schedule-surface
branch
from
October 18, 2026 19:45
3a3617a to
8354d4a
Compare
This was referenced Oct 18, 2026
Move schedule inventory, run history, and schedule details into a fill surface with bounded controls, stable selection, and owned async results. Preserve read-only transcript handoff and document reusable TUI conventions. Co-authored-by: Mecatl <noreply@mecatl.dev>
Explicitly submit plan mode for read-only schedules and default mode for mutating schedules, showing the effective mode in the create form. Retain form values and focus until creation succeeds, prevent duplicate pending submissions, and cover retry and explicit Back behavior. Co-authored-by: Mecatl <noreply@mecatl.dev>
Add multiline prompt editing, searchable timezone selection, finite timing validation, explicit controls, and geometry-safe widget input routing. Preserve failed drafts and disclose execution policy and result delivery. Co-authored-by: Mecatl <noreply@mecatl.dev>
Keep mutating schedules on the server default permission mode, explicitly label that policy, and carry the upstream regression into current Model.Update coverage. Pin timezone catalog provenance independently of the module language floor and rolling CI toolchain; regenerate with Go 1.27.3. Co-authored-by: Mecatl <noreply@mecatl.dev>
jbeda
force-pushed
the
impl/2173-schedule-surface
branch
from
October 27, 2026 18:48
8354d4a to
a2f8b8c
Compare
The schedule preview imports the existing robfig cron package directly. Preserve its version while making root module metadata stable under tidy. Co-authored-by: Mecatl <noreply@mecatl.dev>
Keep labeled fields visible, search timezones directly, and place explicit actions next to the form. Preserve surface-owned input, permission policy, pending operations, and failed drafts. Co-authored-by: Mecatl <noreply@mecatl.dev>
Group form controls and actions ahead of muted supporting information, add space around schedule lists, and expand timezone suggestions to six rows when the available geometry permits. Return schedule-run transcript inspection to its originating browser, preserving selection, scroll, filters, pending operations, and the active chat draft. Cover compact/loading/error states, stale receipts, hidden input, cleanup, and captured keybinding precedence. Document the reusable layout conventions and corrected Back destination. Co-authored-by: Mecatl <noreply@mecatl.dev>
Fence delayed filter clipboard receipts across focus changes, expand tabs before bounded list layout, and strengthen independent receipt identity regressions. Remove unreachable creator initialization and unused autocomplete configuration. Co-authored-by: Mecatl <noreply@mecatl.dev>
Remove the independent source toolchain pin and record provenance from the active Go runtime. Keep timezone refresh explicit, protect the catalog in existing generation gates, and cover active archive provenance and deterministic extraction. Co-authored-by: Mecatl <noreply@mecatl.dev>
This was referenced Oct 28, 2026
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.
Summary
/scheduleinto the shared conversation-filling surface, with bounded schedule and run lists, preserved selection/filter/scroll, and separate scrollable details.plan; writable schedules use the server's default permission mode. Runs use server-selected models and separate run history, not automatic delivery to the open chat.Closes #2173. Relates to #1742, #1589, #2237, and #555.
Implementation boundaries
Uses existing scheduling RPCs and fields. Adds Huh v2.0.3, a checked-in timezone catalog generated from pinned Go data, and standard-library embedded timezone fallback for the client and scheduler. Server validation and authorization remain authoritative.
Schedule editing, model selection, advanced policy, timing assistance, and form-to-chat delivery remain separate work.
Verification
Local checks passed:
task test,task test:race,task lint,task build, and the offline approval demo. Regression coverage includes geometry, bindings, draft retention, stale results, timezone/DST behavior, and transcript return.The creator was manually exercised; final layout/Back refinements still need a manual pass. No live schedules were created or fired for verification.
CI is running on the latest push. The known Kind Clear/Fork HTTP 409 flake is tracked in #2401; its cause is unconfirmed and this PR does not claim to fix it.
API compatibility
No wire major/feature change, public engine API change, storage migration, or upgrade sequencing. Existing invalid-zone and embedded-zone parsing policies are unchanged; embedded tzdata improves rule availability on hosts without system zoneinfo.