Skip to content

fix(feedback): decouple local diagnostics from remote refresh - #4816

Closed
ScriptedAlchemy wants to merge 1 commit into
masterfrom
fix/4423-local-feedback-remote-decoupling
Closed

ScriptedAlchemy wants to merge 1 commit into
masterfrom
fix/4423-local-feedback-remote-decoupling

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Issue

Refs #4423 — isolate the editor/LSP/hook feedback path from remote refresh I/O. This PR is draft because full retained-remote-evidence acceptance is not yet complete.

Production change

  • Separate local feedback from explicitly demanded remote advisory refresh at the existing daemon owner. The local LSP and hook paths no longer poll CI discovery and do not enqueue GitHub review network requests as part of their feedback cycle.
  • Keep DaemonAdvisoryCycleInvocationPort::invoke on the existing explicit GitHub/CI refresh path. refresh_github remains its own authorized operation.
  • Keep the same canonical AdvisoryRuntime::run_once, publication and hook delivery, cancellation/deadlines, and proximity evaluation. Unrequested remote providers retain typed Unavailable outcomes; local completion never means remote success. No configuration or authorization checks are bypassed.
  • Add barrier-driven behavioral tests: (1) a remote CI discovery future that panics if polled cannot be reached during local selection, and (2) explicit refresh remains pending until its remote discovery settles with a denied outcome.

Verification

The two-file commit ece7d27f09383c27ab341f0fa0c7fcbb6f4dc776 was independently reviewed against master 91c72aba7750a398dd28e83d64bf0c6d6fef4172. It changes the existing daemon owner and its existing tests; no generated contracts or unrelated PRs were edited.

Rust/Bazel tests are not yet executed. The authoring runtime lacks Bazel and Rust; use hosted Bazel CI for //crates/tracedecay:unit_test, //crates/tracedecay:runtime_acceptance_suite, LSP/hook and repository-wide gates. Do not mark this ready or merge from static review.

Remaining acceptance

  • Integrate appropriately scoped, generation-compatible already retained GitHub/CI evidence into local feedback without a network refresh; missing/stale evidence must remain typed. This PR deliberately does not claim completion of that requirement.
  • Verify remote-required policy gates cannot claim an overall pass from local-only work, plus full LSP/hook/editor and explicit-refresh journeys and operation telemetry with actual provider-call evidence.
  • Delete obsolete staging/provider branches only after all consumers migrate, with nonzero Bazel tests and native macOS where applicable. No performance claim or issue closure is made.

Protected mixed draft #4776 and release #4763 are untouched.

Superseded by a non-force successor (2026-11-08)

Hosted Repository gates confirmed this PR's original commit header has 77 characters and fails the 72-character authored-header-max-length check. Appending commits cannot correct an already published commit, and a force-push is prohibited for this task. A successor draft branch retains this exact production patch and both barrier regressions, adds typed CI-provider-state correctness, and uses a valid commit header. This PR is closed without merge or deletion; its source and discussion remain accessible.

… refresh

Route local LSP and hook feedback without polling GitHub review refresh or
CI discovery. Keep explicit advisory demand on its existing authorized
remote refresh path, and preserve typed unavailable remote provider states.

Add production-selector regressions proving a blocked remote CI read cannot
be polled by local feedback and an explicit read waits for its own barrier.

Refs #4423
@changeset-bot

changeset-bot Bot commented Nov 8, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ece7d27

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant