fix(ui-react): wire the Results step Fetch results button (#110) - #122
Merged
Conversation
MintThread rendered MintResults without onPublishResults, and MintResults
returns on the first line of handlePublish when that prop is absent, so the
button made no network request at all.
The route publishes every execution under the subtask, which needs the
problem statement and task ids in its path; thread_info carried task_id
alone, so it now selects task { problem_statement_id } too. Each id is
encoded as one path segment, because the legacy mint:// form carries
slashes.
A failure is now shown rather than dropped. Registration reaches Tapis and
CKAN, so it fails for reasons a user cannot guess at, and handlePublish had
no catch — the rejection went nowhere.
Also ignore .env, which holds a live data-catalog credential and was only
one git add away from a public repo.
This does not by itself make results appear at TACC: the deployment's CKAN
API token no longer authenticates, so registration returns 403. That is a
separate, operational fix.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Closes the client half of #110.
What was wrong
MintThread.tsxrenderedMintResultswithoutonPublishResults, andMintResults.handlePublishreturns on its first line when that prop is absent.So Fetch results made no network request at all — the click did nothing,
silently.
What changed
publishResultsinsrc/lib/ensemble-manager.ts, alongside the two callsEnsemble Manager calls send no Authorization header — localStorage key mismatch #85 moved there, so the Authorization header is still built in one place.
MintThreadpassesonPublishResults. The route publishes every executionunder the subtask, so its path needs the problem statement and task ids —
thread_infocarriedtask_idalone, and now selectstask { problem_statement_id }. Confirmed readable at TACC underanonymous, so the
userrole sees it too.encodeURIComponent-ed as one path segment. TACC's ids are opaqueand unaffected, but the legacy
mint://…/…form carries slashes that wouldotherwise split into extra segments and miss the route.
handlePublishhad nocatch, soa rejection went nowhere. Registration reaches Tapis and CKAN, so it fails for
reasons a user cannot guess at.
.envis now git-ignored — it holds a live data-catalog credential and wasonly one
git addaway from a public repo.What this does not fix
Results still will not appear at TACC. The deployment's CKAN API token no longer
authenticates:
package_showon the target dataset answersAccess denied: User not authorized— an empty username, so the token isnot resolving to any user. That is why
registerOutputsreturns 403 and theroute reports it as a 500. Operational fix, tracked on #110.
Measured while diagnosing: the token in
.envwas issued 2026-05-03T22:52:02,90 seconds before TACC's first successful output registration at 22:53:57 — so it
is the token that worked, and it has since been invalidated. A freshly minted
token reads the same dataset fine, which rules out nginx stripping the header.
Tests
928 pass (was 921). The
MintThreadguard asserts the outgoing request, notthe prop, and was checked to fail against the old code — a
MintResults-leveltest cannot catch this, since it passes the prop itself.