Repository navigation
fix(workbook): refresh only the stale cells in each row - #74
Open
rudycelekli wants to merge 1 commit into
Open
rudycelekli wants to merge 1 commit into
rudycelekli wants to merge 1 commit into
Conversation
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com>
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.
What & why
Standing refresh identifies rows with stale enrichment fields but currently submits those rows to an unrestricted workbook run. If only one field has expired, fresh AI results can be replaced and an unrelated output column can be dispatched.
Keep the exact stale field IDs for each row and pass that matrix through the existing runner scope. Refresh remains limited to enrichment, waterfall and AI formula columns. Source materialization, existing TTL/status rules, workspace scope and activity reporting are preserved.
This is separate from #69's recurring-job scheduling and #73's configured output dependencies. It changes standing refresh selection, not explicit user-selected workbook runs.
Type
Verification
Six regression cases execute the real refresh/runner/ORM boundary with two persisted rows that have different stale fields. They cover linked and unlinked identities, expired and failed fields, preservation of fresh values, no output dispatch, a second refresh and all-fresh no-op controls. External AI and Sheets calls are stubbed; these tests do not claim live provider delivery.
The frozen tests on unchanged main fail four cases and pass two controls: the old runner performs four AI calls instead of two and reaches Sheets twice. With this patch, the focused regression and adjacent refresh-row, cell-scope and dependency suites pass all 64 tests locally.
Canonical unchanged full CI on the exact signed head: https://github.com/rudycelekli/OpenGTM/actions/runs/38064838190 (all four jobs passed on the exact signed candidate).
Checklist
git commit -s) per the DCOSecurity-sensitive?
This changes which existing LLM/enrichment and outbound output calls standing refresh selects. It prevents unrelated output columns from being scheduled by that refresh path. Existing credential, URL, auth, tenancy, dependency and output run-once guards are unchanged. No vulnerability disclosure or new transport is included.
Notes
AI-assisted implementation and tests; reproduction, scope, diff and native controls reviewed independently. No public API, schema, dependency or CI workflow changes.
Root independently reran all 64 focused tests. The canonical owned run passes 2,098 SQLite tests (134 existing skips), 18 PostgreSQL tests, 63 frontend tests and three mounted Chromium regressions. These checks cover the candidate before publication; upstream checks may still be pending after submission.