Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
417 commits
Select commit Hold shift + click to select a range
4d774fe
Builder done screen adopts the git-import completion idiom
chiang-daniel Aug 8, 2026
dc7c30e
Eval builder judge_traces stream: re-judge saved chains for calibration
chiang-daniel Aug 8, 2026
2c5f5c7
Eval builder judge calibration loop: refine, re-check, re-review at save
chiang-daniel Aug 8, 2026
ecaca33
Calibration escape moves into the primary button with a confirm dialog
chiang-daniel Aug 9, 2026
6b8b41d
Merge origin/scosman/evals_v2 into feat/multiturn-megabranch (hub ref…
chiang-daniel Aug 10, 2026
e7d366a
Merge PR #1662 head (claude/eval-splits-evals-v2 @ ef8d80e9c) into fe…
chiang-daniel Aug 10, 2026
92c0bc2
Merge feat/multiturn-megabranch (evals_v2 hub-refresh + PR #1662 head…
chiang-daniel Aug 10, 2026
5a6fba6
Golden calibration dedupes on calibration records only, with cross-la…
chiang-daniel Aug 10, 2026
3970e7b
Calibration stats read only calibration records; EvalRun rejects cali…
chiang-daniel Aug 10, 2026
867b83e
Paid e2e harness asserts the splits shape
chiang-daniel Aug 10, 2026
38ab0f4
Wizard save writes the multi-turn eval's splits natively
chiang-daniel Aug 10, 2026
e34cfd6
Retire the eval_input_filter_id load shim
chiang-daniel Aug 10, 2026
a962c51
Calibration loop refines until aligned; escape becomes a quiet link
chiang-daniel Aug 10, 2026
fcaf6e0
Single-turn gets the judge calibration loop; the silent refine dies
chiang-daniel Aug 11, 2026
6f66331
Single-turn eval slice becomes inputs-only eval inputs
chiang-daniel Aug 11, 2026
c93af4f
Single-turn drives locally: the one-turn pipeline route
chiang-daniel Aug 11, 2026
5e49ffe
Single-turn Step 4 goes plan-first onto the local pipeline
chiang-daniel Aug 11, 2026
13f47aa
Rename review_pipeline to multi_turn_pipeline
chiang-daniel Aug 11, 2026
250e29d
Single-turn drives locally: pooled review and the real-runs save
chiang-daniel Aug 12, 2026
e33704c
Eval names collide early and cheaply, not at save
chiang-daniel Aug 12, 2026
7999536
The eval name stays transient until save; staleness pauses, never des…
chiang-daniel Aug 12, 2026
2ddbcb3
The builder page compiles again from a clean checkout
chiang-daniel Aug 14, 2026
7e1636a
Synthetic-user drive config rides each eval input, not the eval
chiang-daniel Aug 15, 2026
a2ed80d
Merge scosman/evals_v2 @ 4ee3cb97f into feat/multiturn-megabranch (hu…
chiang-daniel Aug 18, 2026
586d789
Merge feat/multiturn-megabranch: adopt the eval run/score split
chiang-daniel Aug 18, 2026
6def3d6
Two test fixes the hub refresh merge intended to carry
chiang-daniel Aug 18, 2026
d5c39e4
Eval trace read paths degrade instead of crashing, and traces persist…
chiang-daniel Aug 18, 2026
fcc17cb
Multi-turn evals join the pointer model: drive once, every judge reuses
chiang-daniel Aug 18, 2026
f76e053
A reused conversation must be whole: health gates at save and at serve
chiang-daniel Aug 18, 2026
19324f2
Builder step 3 is one lean refine form on both arms
chiang-daniel Aug 18, 2026
336f526
Builder chrome speaks the app's language: one button grammar, plain-v…
chiang-daniel Aug 19, 2026
ecf5267
A disputed blind verdict is real refine signal
chiang-daniel Aug 19, 2026
01cfe75
Short single-turn traces review on the trace itself
chiang-daniel Aug 19, 2026
e5de766
Trace bubbles render JSON as JSON
chiang-daniel Aug 19, 2026
d0668b0
Eval score summaries: report percentiles, not just the mean (#1636)
tawnymanticore Aug 20, 2026
c9102ac
evals: record the synthetic user's tokens, not just its cost (#1645)
tawnymanticore Aug 20, 2026
1bd7a8d
Merge origin/main into feat/multiturn-megabranch (hub refresh, 9.5 ma…
chiang-daniel Aug 21, 2026
99bec64
Merge feat/multiturn-megabranch (main sync 9.5) into dchiang/eb-v2-merge
chiang-daniel Aug 21, 2026
e52f36f
Follow the SpecEvalTags rename in the paid e2e harness
chiang-daniel Aug 21, 2026
184a312
The reveal quotes the judge's real explanation, and citations resolve…
chiang-daniel Aug 21, 2026
bd54e8c
CHAR_CUTOFF comment catches up with the corpus
chiang-daniel Aug 21, 2026
83967d2
The blind row asks the question its buttons answer
chiang-daniel Aug 24, 2026
0a50e46
The trace-first gate asks one question: is this short?
chiang-daniel Aug 24, 2026
663ff09
Single-turn review reads as Input and Output, never as a chat
chiang-daniel Aug 25, 2026
50ffba7
The trace-first cutoff moves to 900 characters
chiang-daniel Aug 25, 2026
4311c95
Citations point into the review, not at a copy of it
chiang-daniel Aug 25, 2026
4c72d5b
A collapsed cited row comes back when the review re-fires
chiang-daniel Aug 25, 2026
e2e9ab0
Multi-turn tasks reach the eval builder again
chiang-daniel Aug 25, 2026
103a0e1
Eval scores must be finite and tool calls may be malformed
chiang-daniel Aug 25, 2026
85b8d59
Restore what the hub merges quietly took back
chiang-daniel Aug 25, 2026
9560a82
Bug bash fix collection: opening commit
chiang-daniel Aug 25, 2026
8bb19d5
The drive has no arbitrary timeout to falsely fire
chiang-daniel Aug 26, 2026
3fde8f5
Citations land where the reviewer is actually looking
chiang-daniel Aug 26, 2026
6ed844d
A retry tops off the batch instead of replacing it
chiang-daniel Aug 26, 2026
21815cd
The wizard save deals a validation split
chiang-daniel Aug 26, 2026
f299df5
A multi-turn trace is one bare conversation in a wider modal
chiang-daniel Aug 26, 2026
82c1d02
The copilot payload names the task's tools and skills
chiang-daniel Aug 26, 2026
7722767
The trace modal opens at the top and fills 80% of the screen
chiang-daniel Aug 26, 2026
f91f50d
Eval results read as conversations on multi-turn tasks
chiang-daniel Aug 26, 2026
6b40d00
A closed dialog nested in another dialog leaves the layout
chiang-daniel Aug 26, 2026
dd6d0f0
Merge branch 'dchiang/bash-fixes' into dchiang/eb-v2-merge
chiang-daniel Aug 26, 2026
1dcf75d
Merge remote-tracking branch 'origin/dchiang/m17-results-view' into d…
chiang-daniel Aug 26, 2026
e904a95
Claim builds write a ClaimDebug sidecar for offline debugging
chiang-daniel Aug 27, 2026
5553473
Editing the description after Back regenerates the clarifying questions
chiang-daniel Aug 27, 2026
25d3a68
A typed eval name and a fresher description both survive wizard round…
chiang-daniel Aug 27, 2026
f738535
The refinement caption speaks to the user, not like a changelog
chiang-daniel Aug 27, 2026
2410cc6
Provider timeouts and unparseable structured output classify as retry…
chiang-daniel Aug 27, 2026
f1df9ba
Retry waits back off exponentially with full jitter instead of a flat…
chiang-daniel Aug 27, 2026
923b9a0
Case-failure events name the exception class behind the failure
chiang-daniel Aug 27, 2026
c24b229
Questions pair with the last Continue, so Forward alone never regener…
chiang-daniel Aug 27, 2026
b3de3e9
The stream docstrings' case_failed sketches include error_type
chiang-daniel Aug 27, 2026
0f27f5b
A failed question load shows Retry instead of silently spending forever
chiang-daniel Aug 27, 2026
8441ddc
The suggested eval name tracks the model until the user types their own
chiang-daniel Aug 27, 2026
86a2e7b
Structured output of the wrong JSON shape retries like unparseable ou…
chiang-daniel Aug 27, 2026
0c12d00
Merge branch 'dchiang/bash-retry-fixes' into dchiang/eb-v2-merge
chiang-daniel Aug 27, 2026
b6b7135
An invalid classify name suggestion is dropped, not planted in the field
chiang-daniel Aug 27, 2026
d53b187
Merge branch 'dchiang/bash-wizard-fixes' into dchiang/eb-v2-merge
chiang-daniel Aug 27, 2026
119508c
A citation whose anchors sit in two different turns now highlights it…
chiang-daniel Aug 27, 2026
759c755
A fence-wrapped judge prompt is unwrapped instead of failing the auth…
chiang-daniel Aug 27, 2026
bc91b3c
Feedback the judge refine declined to apply is shown over the next re…
chiang-daniel Aug 27, 2026
5ca51bb
Case-failure analytics now carry the error class from the pipeline st…
chiang-daniel Aug 27, 2026
f067791
The synthetic data batch form becomes a shared component
chiang-daniel Aug 27, 2026
6d82b0e
Every eval builder run enters through Generation Settings
chiang-daniel Aug 28, 2026
fd11e8e
One vocabulary for the plan surface, and quieter model advisories
chiang-daniel Aug 28, 2026
1dffa39
Conversations get a user-chosen length in Generation Settings
chiang-daniel Aug 28, 2026
de9b424
A blank steer submits the New Batch Plan dialog
chiang-daniel Aug 28, 2026
e5bdf2b
Merge branch 'dchiang/bash-wave-b' into dchiang/eb-v2-merge
chiang-daniel Aug 28, 2026
e6ab809
Reviewers answer the eval's call first, without being told the answer
chiang-daniel Aug 28, 2026
e66395f
Claim review asks reviewers to flag what is wrong, not to rate what i…
chiang-daniel Aug 28, 2026
2365f2c
One blind card for both arms, and a Claims count that tells the truth
chiang-daniel Aug 28, 2026
2d8ecff
Reviewers are not shown conversations Kiln could not analyze, or lied…
chiang-daniel Aug 28, 2026
b357131
Claim review speaks the same language as the rest of the step
chiang-daniel Aug 28, 2026
dd930ed
The contradiction block carries one heading, not two
chiang-daniel Aug 28, 2026
d6ee4ec
The feedback field is named by its label, not by the whole mismatch
chiang-daniel Aug 28, 2026
b1dcb16
Merge remote-tracking branch 'origin/main' into dchiang/main-sync-reh…
chiang-daniel Aug 28, 2026
598c965
Capability collection connects to a server once, not once per tool
chiang-daniel Aug 28, 2026
3ce343e
Regenerate the kiln_server SDK so every endpoint shares one 401 type
chiang-daniel Aug 28, 2026
46a8d7f
Single-turn review asks its question the way multi-turn does
chiang-daniel Aug 29, 2026
596ce7c
Claims fold again on every example
chiang-daniel Aug 29, 2026
20988b3
One review headline for both arms
chiang-daniel Aug 29, 2026
9e46ac9
The copilot sees the task's schemas when it writes clarifying questions
chiang-daniel Aug 29, 2026
96341a8
Single-turn reviews its trace in the same viewer multi-turn uses
chiang-daniel Aug 29, 2026
3071cd5
A structured answer reads as the answer, not as a tool call
chiang-daniel Aug 30, 2026
ad5810f
A cited quote is marked where it sits, without redrawing the JSON aro…
chiang-daniel Aug 30, 2026
e8d0bea
The single-turn judge reads what the agent did, not just what it said
chiang-daniel Aug 30, 2026
cfca4d7
The transcript keeps every part of what the agent did
chiang-daniel Aug 30, 2026
4506a70
A structured answer reads as the answer in the transcript too
chiang-daniel Aug 30, 2026
df64b30
The sidebar offers one way into evals, not two
chiang-daniel Aug 31, 2026
81c07b8
Step 4 names the eval dataset it builds, not a batch
chiang-daniel Sep 1, 2026
7350061
Merge the eval builder's step 4 and 5 naming into the integration branch
chiang-daniel Sep 1, 2026
b4a7617
A single-turn eval's results show the trace it recorded
chiang-daniel Sep 1, 2026
20ce127
Both arms author their judge rubric against a transcript
chiang-daniel Sep 1, 2026
c651095
Comments say the single-turn judge reads a transcript
chiang-daniel Sep 1, 2026
bcc17e3
Merge the single-turn transcript fixes into the integration branch
chiang-daniel Sep 1, 2026
86afdcd
The wizard's words match what it actually does
chiang-daniel Sep 1, 2026
2629dfd
Merge the wizard's copy and classification cleanup into the integrati…
chiang-daniel Sep 1, 2026
d16fb93
The plan surface calls its rows what they hold
chiang-daniel Sep 1, 2026
385afd9
Merge the shared plan-surface labels into the integration branch
chiang-daniel Sep 1, 2026
ba352b2
Comments name the button the user actually sees
chiang-daniel Sep 1, 2026
ac0aaa8
Merge the label comment sweep into the integration branch
chiang-daniel Sep 1, 2026
5d98a1f
Eval creation goes straight from a template to the builder
chiang-daniel Sep 3, 2026
7be32f5
A bigger eval batch that does not cost the reviewer more
chiang-daniel Sep 3, 2026
74033d1
The synthetic user can end a conversation before the turn ceiling
chiang-daniel Sep 4, 2026
dd2dc3b
Step 5 says what it is for before it asks for anything
chiang-daniel Sep 4, 2026
f2d10f5
The eval runner accepts a conversation the synthetic user ended
chiang-daniel Sep 4, 2026
6899e0d
The synthetic user is told when it may end a conversation
chiang-daniel Sep 4, 2026
366aa6d
Start eval creation on a single Setup and Eval Type page
chiang-daniel Sep 4, 2026
ae50df3
Ask for the eval description in the same words on both screens
chiang-daniel Sep 4, 2026
3ec42b1
Merge the synthetic-user turn ceiling into the integration branch
chiang-daniel Sep 4, 2026
e75a64d
Regenerate the kiln_server client for the claim builder v1.5 contract
chiang-daniel Sep 4, 2026
26e4885
Update the claim review API models and datamodel to the v1.5 contract
chiang-daniel Sep 4, 2026
c982496
Rebuild the Step 5 claim review UI on the v1.5 overview and claims card
chiang-daniel Sep 4, 2026
65e34f3
Rename the eval wizard's forward buttons to Continue and add a descri…
chiang-daniel Sep 4, 2026
6e43784
Increase the spacing above the eval wizard's progress bars
chiang-daniel Sep 4, 2026
e5a1ef6
Merge Sam's wizard copy and spacing fixes into the integration branch
chiang-daniel Sep 4, 2026
94aa46e
Call the refineJudgePrompt v1.5 task from the desktop refine loop
chiang-daniel Sep 4, 2026
a561314
Merge remote-tracking branch 'origin/dchiang/eb-v2-merge' into dchian…
chiang-daniel Sep 4, 2026
c780645
Merge the claim builder v1.5 review card into the integration branch
chiang-daniel Sep 4, 2026
7b2665a
Use the run config component for the single-turn input lane and send …
chiang-daniel Sep 4, 2026
57a327b
Merge the single-turn input lane's tools and skills support into the …
chiang-daniel Sep 4, 2026
b622c9c
Resolve built-in models without provider keys in the multi-turn drive…
chiang-daniel Sep 4, 2026
48ccd96
Merge the keyless drive preflight fix into the integration branch
chiang-daniel Sep 4, 2026
ba2cd32
Space the cost warning like the rest of the Generation Settings form
chiang-daniel Sep 4, 2026
77a520a
Merge the Generation Settings cost warning spacing fix into the integ…
chiang-daniel Sep 4, 2026
2e907b0
Remove the outer margin from Warning and make the indent an explicit …
chiang-daniel Sep 6, 2026
da5928b
Space the model dropdown's advisories with a gap instead of the warni…
chiang-daniel Sep 6, 2026
43372b0
Restore Warning spacing from parent containers across the app
chiang-daniel Sep 6, 2026
3d9cd97
Show the model advisories on every Generation Settings lane and shrin…
chiang-daniel Sep 6, 2026
4e49196
Wait for the model list before judging a chosen model and keep the Q&…
chiang-daniel Sep 6, 2026
9f04174
Merge the Warning spacing unit into the integration branch
chiang-daniel Sep 6, 2026
0b20fb9
Send the task's Data Guide with single-turn generation requests
chiang-daniel Sep 7, 2026
8bc5d14
Share the Data Guide offer and checkbox between synthetic data and th…
chiang-daniel Sep 7, 2026
905a290
Offer a Data Guide before the eval builder plans a single-turn dataset
chiang-daniel Sep 7, 2026
5bbf084
Return to the eval builder from Data Guide setup
chiang-daniel Sep 7, 2026
f2bce09
Offer the Data Guide again when Back leaves an unplanned Step 4
chiang-daniel Sep 8, 2026
f1578de
Continue an eval draft in the builder from the Evals page
chiang-daniel Sep 8, 2026
13799f1
Offer to continue an eval draft only when there is work to resume
chiang-daniel Sep 8, 2026
9928c4b
Start over on the Setup and Eval Type page when the eval builder resets
chiang-daniel Sep 8, 2026
19cd06b
Merge the Data Guide unit into the integration branch
chiang-daniel Sep 8, 2026
4c86e20
Merge origin/main into feat/multiturn-megabranch (hub refresh)
chiang-daniel Sep 8, 2026
0e145ff
Merge the refreshed hub (main sync) into the integration branch
chiang-daniel Sep 8, 2026
590da5c
Add a synthetic-user recommendation flag to the model list
chiang-daniel Sep 8, 2026
e63c3b3
Recommend synthetic-user models in the eval builder's user-model lane
chiang-daniel Sep 8, 2026
6c3511e
Merge the synthetic-user model recommendation unit into the integrati…
chiang-daniel Sep 9, 2026
5c77edb
Recommend GLM 5.3 Flash and Claude 4.5 Haiku for the synthetic user
chiang-daniel Sep 9, 2026
2b58a06
Merge the synthetic-user recommendation additions into the integratio…
chiang-daniel Sep 9, 2026
91f8a10
Name graded conversations by their opening message and list the refin…
chiang-daniel Sep 10, 2026
900375b
Start a judge refine only on a verdict disagreement
chiang-daniel Sep 10, 2026
b311a28
Say which grades refine the judge on every control that can
chiang-daniel Sep 10, 2026
2711815
Merge the refine-trigger unit into the integration branch
chiang-daniel Sep 10, 2026
9c664aa
Say a note does not refine the judge, matching the line that says a d…
chiang-daniel Sep 10, 2026
b4c5b38
Merge the consequence-line wording fix into the integration branch
chiang-daniel Sep 10, 2026
e229a5c
EvalInput HTTP API: CRUD + filtered listing on tasks (KIL-753) (#1591)
tawnymanticore Sep 10, 2026
5e591a7
Refine the judge on any claim disagreement
chiang-daniel Sep 10, 2026
48481e2
Merge the refine-on-any-disagree unit into the integration branch
chiang-daniel Sep 10, 2026
d7780fa
Revert "Name graded conversations by their opening message and list t…
chiang-daniel Sep 10, 2026
e8f726a
Stop showing the reviewer the feedback the judge refiner declined
chiang-daniel Sep 10, 2026
5400a9b
Merge the drop-declined-banner unit into the integration branch
chiang-daniel Sep 10, 2026
fe3a524
Read the chosen run config's tools and skills in the copilot calls
chiang-daniel Sep 11, 2026
06c2cac
Ask which run config to evaluate when starting the eval builder
chiang-daniel Sep 11, 2026
09034fd
Stop sending the run config on the wizard save, which never reads it
chiang-daniel Sep 11, 2026
e603412
Merge the run-config choice unit into the integration branch
chiang-daniel Sep 11, 2026
7e1be63
Label the disagree box and hint when a reason is too short to refine …
chiang-daniel Sep 11, 2026
ec84d98
Merge the disagree-box label and hint unit into the integration branch
chiang-daniel Sep 11, 2026
9bf8938
Let the reviewer open the eval's description from the claim review
chiang-daniel Sep 11, 2026
163c4d2
Merge the eval-description dialog unit into the integration branch
chiang-daniel Sep 11, 2026
a57e175
Drop the filled icon variant from Warning
chiang-daniel Sep 12, 2026
14eab3f
Let FormElement name the element that describes its field
chiang-daniel Sep 12, 2026
0cce36d
Let SettingsHeader carry actions on its title line
chiang-daniel Sep 12, 2026
8c74b97
Let Output render slotted content inside its read-only surface
chiang-daniel Sep 12, 2026
5ffeb0a
Build the eval builder's review and progress screens from the house c…
chiang-daniel Sep 12, 2026
d204169
Review only cases whose claims carry a verdict
chiang-daniel Sep 12, 2026
2d32923
Ask whether to improve the judge before saving the review
chiang-daniel Sep 12, 2026
351f519
Finish the eval builder on the house success screen
chiang-daniel Sep 12, 2026
4dc9856
Name the template picker after what it holds
chiang-daniel Sep 12, 2026
58ea2a8
Merge the Step 5 house-controls sweep unit into the integration branch
chiang-daniel Sep 13, 2026
39883d8
Suffix colliding spec names with a space instead of an underscore
chiang-daniel Sep 13, 2026
c257034
Merge the spec name suffix unit into the integration branch
chiang-daniel Sep 13, 2026
bfad788
Tell the synthetic user it cannot know what exists and to accept a no…
chiang-daniel Sep 14, 2026
8f4d377
Merge the synthetic-user world-state unit into the integration branch
chiang-daniel Sep 14, 2026
e3c22f7
Tell the batch planner the agent's world cannot be seen when planning…
chiang-daniel Sep 14, 2026
4d952d7
Merge the planner-guidance world-state unit into the integration branch
chiang-daniel Sep 14, 2026
3440b45
Let the progress animations render their warning line at the Warning …
chiang-daniel Sep 14, 2026
52cb304
Let SettingsHeader take its subtitle as a slot
chiang-daniel Sep 14, 2026
a9dce39
Render the batch-plan header with the house section header
chiang-daniel Sep 14, 2026
2bdd77e
Rename the eval builder's entry page and step copy
chiang-daniel Sep 14, 2026
159ba15
Show a stopped dataset drive on its own screen with the two ways forward
chiang-daniel Sep 14, 2026
cca6439
Merge the eval builder UI copy, batch-plan header and stopped-drive s…
chiang-daniel Sep 15, 2026
3df7e29
Review Step 5 claims one at a time beside a sticky overview
chiang-daniel Sep 15, 2026
6613b6b
Merge the Step 5 one-claim review unit into the integration branch
chiang-daniel Sep 15, 2026
cba6726
Let the Step 5 overview render at its full height
chiang-daniel Sep 15, 2026
b675266
Merge the Step 5 overview height fix into the integration branch
chiang-daniel Sep 15, 2026
319d39c
Fold a runaway Step 5 overview behind Show All at a pixel cap
chiang-daniel Sep 15, 2026
475e259
Merge the Step 5 overview pixel cap into the integration branch
chiang-daniel Sep 15, 2026
e842195
Remove the claim builder's debug capture sidecar
chiang-daniel Sep 15, 2026
a25fce3
Ask kiln_server for synthetic-user cases in chunks instead of one call
chiang-daniel Sep 15, 2026
da927d6
string change
scosman Sep 15, 2026
29eecec
Merge the chunked synthetic-user case generation into the integration…
chiang-daniel Sep 15, 2026
e65f5db
Merge the integration branch's remote string change into the local line
chiang-daniel Sep 15, 2026
5b82df3
Merge the claim builder debug-capture removal into the integration br…
chiang-daniel Sep 15, 2026
fd8dc86
Restyle the eval builder's claim review, and stop a draft peek hangin…
scosman Sep 15, 2026
db647fa
Seed the Generation Settings lanes before the dialog shows and clear …
chiang-daniel Sep 15, 2026
a7c0067
Merge the Generation Settings seeding and stale-error fix into the in…
chiang-daniel Sep 15, 2026
29370cd
Remove the unused info circle icon
chiang-daniel Sep 15, 2026
e14ab4d
Remove the unused SDG step judge mapper
chiang-daniel Sep 15, 2026
c695d06
Remove unused claim evidence types and needless exports
chiang-daniel Sep 15, 2026
622a49f
Remove the unused RunChainResponse alias
chiang-daniel Sep 15, 2026
01b2ee2
Stop exporting the Data Guide return param key
chiang-daniel Sep 15, 2026
b043ef4
Stop exporting two plan flow internals
chiang-daniel Sep 15, 2026
4326169
Remove an unused parameter from the fake batch runner
chiang-daniel Sep 15, 2026
dd6b69c
Replace the model dropdown's never-set empty state props with constants
chiang-daniel Sep 15, 2026
e11265c
Remove the Kiln Pro plan's never-set button label and repeated defaults
chiang-daniel Sep 15, 2026
8fe4f8e
Remove the model dropdown's unused quiet mode
chiang-daniel Sep 15, 2026
35ad547
Share one task_response tool name across the web UI and pin it to lib…
chiang-daniel Sep 15, 2026
fe2f6a4
Merge the eval builder dead-code sweep into the integration branch
chiang-daniel Sep 15, 2026
5611259
Take the Full Trace link out of Output, and three fixes to the look
scosman Sep 15, 2026
9e56891
spacing tweak
scosman Sep 15, 2026
943179b
Retry a model reply that came back empty instead of failing the case
chiang-daniel Sep 15, 2026
72a8762
Merge the empty-reply retry into the integration branch
chiang-daniel Sep 15, 2026
5c4f6b9
Regenerate the kiln_server client against the server branch that ship…
chiang-daniel Sep 16, 2026
69a6826
Merge the kiln_server client regeneration into the integration branch
chiang-daniel Sep 16, 2026
902c245
Merge origin/main into the integration branch (model-list flags kept …
chiang-daniel Sep 17, 2026
ea78cfb
Keep two test files clear of the debug detector
chiang-daniel Sep 17, 2026
3e5a774
Merge pull request #1793 from Kiln-AI/dchiang/eb-v2-detector-prints
chiang-daniel Sep 17, 2026
7c2efee
Restore the New Batch Plan label and update the eval creation e2e tests
chiang-daniel Sep 17, 2026
23b005e
Merge pull request #1794 from Kiln-AI/dchiang/eb-v2-playwright-fixes
chiang-daniel Sep 17, 2026
b9e8128
Keep the evals list visible when the Kiln Copilot check fails
chiang-daniel Sep 17, 2026
b096a39
Merge pull request #1795 from Kiln-AI/dchiang/eb-v2-evals-list-copilo…
chiang-daniel Sep 17, 2026
8f0534a
Drop the cap on how many stranded batches one drive can clean up
chiang-daniel Sep 17, 2026
54e610a
Merge pull request #1796 from Kiln-AI/dchiang/eb-v2-batch-tag-cap
chiang-daniel Sep 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions app/desktop/desktop_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,12 @@
from app.desktop.studio_server.data_gen_api import connect_data_gen_api
from app.desktop.studio_server.dev_tools import connect_dev_tools
from app.desktop.studio_server.eval_api import connect_evals_api
from app.desktop.studio_server.eval_builder_api import connect_eval_builder_api
from app.desktop.studio_server.finetune_api import connect_fine_tune_api
from app.desktop.studio_server.import_api import connect_import_api
from app.desktop.studio_server.jobs.api import connect_jobs_api
from app.desktop.studio_server.jobs.registry import job_registry
from app.desktop.studio_server.multiturn_sdg_api import connect_multiturn_sdg_api
from app.desktop.studio_server.prompt_api import connect_prompt_api
from app.desktop.studio_server.prompt_optimization_job_api import (
connect_prompt_optimization_job_api,
Expand Down Expand Up @@ -153,6 +155,8 @@ def make_app(tk_root: tk.Tk | None = None):
connect_skill_api(app)
connect_prompt_optimization_job_api(app)
connect_copilot_api(app)
connect_eval_builder_api(app)
connect_multiturn_sdg_api(app)
connect_batch_plan_api(app)
connect_git_sync_api(app)
connect_agent_api(app)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
from http import HTTPStatus
from typing import Any

import httpx

from ... import errors
from ...client import AuthenticatedClient, Client
from ...models.build_claim_evidence_input import BuildClaimEvidenceInput
from ...models.build_claim_evidence_output import BuildClaimEvidenceOutput
from ...models.http_validation_error import HTTPValidationError
from ...models.unauthorized_response import UnauthorizedResponse
from ...types import Response


def _get_kwargs(
*,
body: BuildClaimEvidenceInput,
) -> dict[str, Any]:
headers: dict[str, Any] = {}

_kwargs: dict[str, Any] = {
"method": "post",
"url": "/v1/copilot/build_claim_evidence",
}

_kwargs["json"] = body.to_dict()

headers["Content-Type"] = "application/json"

_kwargs["headers"] = headers
return _kwargs


def _parse_response(
*, client: AuthenticatedClient | Client, response: httpx.Response
) -> BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse | None:
if response.status_code == 200:
response_200 = BuildClaimEvidenceOutput.from_dict(response.json())

return response_200

if response.status_code == 401:
response_401 = UnauthorizedResponse.from_dict(response.json())

return response_401

if response.status_code == 422:
response_422 = HTTPValidationError.from_dict(response.json())

return response_422

if client.raise_on_unexpected_status:
raise errors.UnexpectedStatus(response.status_code, response.content)
else:
return None


def _build_response(
*, client: AuthenticatedClient | Client, response: httpx.Response
) -> Response[BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse]:
return Response(
status_code=HTTPStatus(response.status_code),
content=response.content,
headers=response.headers,
parsed=_parse_response(client=client, response=response),
)


def sync_detailed(
*,
client: AuthenticatedClient,
body: BuildClaimEvidenceInput,
) -> Response[BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse]:
"""Build Claim Evidence

Build a review card (overview plus claims) for one eval trace + judge decision.

Args:
body (BuildClaimEvidenceInput):

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
Response[BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse]
"""

kwargs = _get_kwargs(
body=body,
)

response = client.get_httpx_client().request(
**kwargs,
)

return _build_response(client=client, response=response)


def sync(
*,
client: AuthenticatedClient,
body: BuildClaimEvidenceInput,
) -> BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse | None:
"""Build Claim Evidence

Build a review card (overview plus claims) for one eval trace + judge decision.

Args:
body (BuildClaimEvidenceInput):

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse
"""

return sync_detailed(
client=client,
body=body,
).parsed


async def asyncio_detailed(
*,
client: AuthenticatedClient,
body: BuildClaimEvidenceInput,
) -> Response[BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse]:
"""Build Claim Evidence

Build a review card (overview plus claims) for one eval trace + judge decision.

Args:
body (BuildClaimEvidenceInput):

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
Response[BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse]
"""

kwargs = _get_kwargs(
body=body,
)

response = await client.get_async_httpx_client().request(**kwargs)

return _build_response(client=client, response=response)


async def asyncio(
*,
client: AuthenticatedClient,
body: BuildClaimEvidenceInput,
) -> BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse | None:
"""Build Claim Evidence

Build a review card (overview plus claims) for one eval trace + judge decision.

Args:
body (BuildClaimEvidenceInput):

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
BuildClaimEvidenceOutput | HTTPValidationError | UnauthorizedResponse
"""

return (
await asyncio_detailed(
client=client,
body=body,
)
).parsed
Loading
Loading