Wire the Intake transport so the feedback adapter can read - #67
Merged
Conversation
…n read PR #65 landed adapters/feedback.ts and its 12 tests, but no Tauri command existed to feed it - lib.rs registered halyard_status, halyard_queue, audience_health, audience_posts and scan_local_projects, and nothing else. The adapter has had nothing to read at runtime since it merged. This was blocked on telltale's base URL, which is now recorded. Six touch points, following the audience_posts path exactly: dashboard.rs feedback_issues - GET {TELLTALE_BASE_URL}/v1/issues with a bearer TELLTALE_TOKEN, returning the envelope unchanged lib.rs register it in generate_handler!, without which the command does not exist at runtime api.ts tauriFeedbackReader implementing the FeedbackReader seam store.ts pollFeedback, mirroring pollAudience Dashboard.svelte prop, poll call, and the SOURCE_LABEL entry - without the last, the badge renders raw lowercase "feedback" through the ?? c.source fallback App.svelte inject the real reader TELLTALE_BASE_URL has no default, deliberately. Unset means "Intake is not configured on this machine", which the adapter must tell apart from "configured but unreachable" - the second greys a lane, the first should not invent one. A non-2xx does not echo the response body: a 401 here is an operator-token problem and the body is not worth risking in a log. The command passes the whole { issues, errors } envelope through rather than reshaping, so there is exactly one place the payload is understood, and that place is pinned on both sides by the wire contract from PR #66. Three store tests added, since every sibling poll has them and this one would otherwise have shipped without. Each was driven red on the defect it exists to catch: pollFeedback drops its result -> 2 red (composition, error passthrough) pollFeedback evicts the wrong source -> 1 red (replace semantics) Suite 159 -> 162, typecheck 357 files 0 errors, cargo check clean. Unrelated, found en route: the Rust build cache held absolute paths under D:\MajorProjects\CURRENT\, the pre-reorg location, and failed to build until target/debug/build was cleared. Third instance of reorg fallout after the audience venv; nothing in this diff caused or fixes it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
adbarc92
added a commit
that referenced
this pull request
Sep 8, 2026
Run rustfmt on both manifests; main's fmt gate has been red since #67
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.
#65 landed
adapters/feedback.tsand its 12 tests — but no Tauri command existed to feed it.lib.rsregisteredhalyard_status,halyard_queue,audience_health,audience_postsandscan_local_projects, and nothing else, so the adapter has had nothing to read at runtime since it merged. This was blocked on telltale's base URL, which is now recorded.Six touch points, following the
audience_postspath exactlysrc-tauri/src/dashboard.rsfeedback_issues—GET {TELLTALE_BASE_URL}/v1/issues, bearerTELLTALE_TOKEN, envelope returned unchangedsrc-tauri/src/lib.rsgenerate_handler!— without this the command does not exist at runtimeapi.tstauriFeedbackReaderimplementing theFeedbackReaderseamstore.tspollFeedback, mirroringpollAudienceviews/Dashboard.svelteSOURCE_LABELentry — without the last, the badge renders raw lowercasefeedbackthrough the?? c.sourcefallbackApp.svelteTwo deliberate choices
TELLTALE_BASE_URLhas no default. Unset means "Intake is not configured on this machine", which the adapter must be able to tell apart from "configured but unreachable" — the second greys a lane, the first should not invent one.A non-2xx does not echo the response body. A 401 here is an operator-token problem; the body is not worth risking in a log.
The command passes the whole
{ issues, errors }envelope through rather than reshaping it, so there is exactly one place the payload is understood — and that place is pinned on both sides by the wire contract from #66.Tests
Every sibling poll has store tests; this one would otherwise have shipped without. Three added, each driven red on the defect it exists to catch:
Suite 159 → 162 · typecheck 357 files, 0 errors ·
cargo checkclean.Unrelated, found en route
The Rust build cache held absolute paths under
D:\MajorProjects\CURRENT\— the pre-reorg location — and failed to build untiltarget/debug/buildwas cleared. Third instance of reorg fallout after the audience venv. Nothing in this diff caused it or fixes it; flagging because it will bite the next person who builds.🤖 Generated with Claude Code