Repository navigation
feat(cards): refresh independent instances from retained sources - #136
Merged
Merged
Conversation
Lancetnik
added this pull request to stack #131
October 6, 2026 21:35
Branch coverage
47 files skipped due to complete coverage. |
6 of 7 tasks
marklysze
approved these changes
Oct 11, 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.
Why are these changes needed?
Cards can now fetch fresh data without another assistant Turn. Generated instances retain their chosen parameters, source configuration, result contract and expanded layout; whole-message Save carries these into an independent file. WeatherPanel and MarketBoard use the existing Weather/Quotes tools. Older source-less instances remain passive.
Each source refreshes on entering the visible viewport of a visible tab, at its configured interval while visible, or through a Refresh button. Composite sources update independently, overlapping calls coalesce, failures preserve the last good values, and changed or removed targets discard stale results. Gateway event transactions serialize publication with authored Chat updates and Chat deletion. Typed source events drive both Chat and file preview projections.
Custom sources retain inline Python and helper files, execute through the selected Skill runtime with time/output bounds, and require explicit approval of the executable version in each Profile. The review dialog binds declared inputs to selected stable Secret IDs; portable metadata carries references, and returned Secret values are redacted after JSON decoding. Files keep fetched values in a bounded display cache; authored source configuration and Secret references remain durable. Copied files retain independent values even when their instance IDs match.
Stack: #129 → #130 → #132 → #133 → this PR. Base:
feat/card-instances.Validation:
Related issue number
Closes #122
Checks
ruff check .,ruff format --check ., andpytest -m "not integration"locally and they pass.web/, I rebuilt and committed the SPA bundle (npm --prefix web run build).AI assistance
Implemented with Codex, including separate Standards and Spec agent reviews. Automated checks and live Chrome verification are listed above.