Skip to content

Fields are attributes, not change requests; split Save from Publish - #92

Merged
vijay-tylertech merged 1 commit into
mainfrom
feat/save-publish-split
Aug 30, 2026
Merged

vijay-tylertech merged 1 commit into
mainfrom
feat/save-publish-split

Conversation

@vijay-tylertech

Copy link
Copy Markdown
Contributor

THE FIELDS NEVER ASKED FOR ANYTHING, and the form said they did. Answer verdict sat
under a heading called "Triggers changes", so recording stale -- an observation
about an answer already given -- claimed to queue an assistant. It cannot: a verdict
value cannot describe what the new answer should say, so a batch built from one had
nothing for an assistant to act on and nothing for the eval to score.

What activates the assistant step under Publish is prose, and only prose: an Ideal
response under an exchange, or a Summary. Those two carry the "triggers changes" tag
and now have a tooltip saying exactly that.

  • NEUTRAL_VALUES and field_asks_for_change() are DELETED from eval_batch, not left
    unused -- a table that assertive is the first thing a reader would reach for when
    changing this logic again. wants_change() is prose-only, and formAsksForChange()
    in the client was changed in step; two copies that disagree is how a transcript
    reaches a batch nobody can act on.
  • The field form is one group, "No action -- recorded, but does not trigger AI
    updates to knowledge files."
  • clearChanges() no longer resets the dropdowns. It used to, which destroyed a
    reviewer's observations -- the verdict, the diagnosis, the kb_files they picked --
    to clear something those fields never caused. It empties the Ideal responses and
    the Summary, and says so.

SPLIT: "Save & Share" was two unrelated jobs under one tab -- a local checkpoint that
shares nothing, and a publish sequence that shares everything. Different audiences,
different risk, no ordering between them. Now /save and /publish, with /git kept
as an alias since it is linked from elsewhere and may be bookmarked. Recovery went to
Save (it undoes unsaved edits, the same subject as checkpointing them). The state bar
and Processing output panel are on BOTH: they are status, not functionality, and every
button on either page prints into that panel. Badges differ too -- unsaved edits on
Save, saved-but-unsent on Publish.

LEGEND: "Mark reviewed & next" was named in the button table and no longer exists --
it renders as "No changes & next" or "Changes suggested & next", which do materially
different things (skip the publishing steps, or join them). Both are now rows, with
the Save/Suggest/Re-review wording taken from the annotations. The "Moves on?" column
is gone: it was the least consequential thing any of these buttons does and read as a
property of the verdict.

Note: there is no save icon in FORGE_ICONS -- it holds 16 hand-curated paths and the
Forge package is not vendored here -- so Save uses folder. Adding the real
content_save path is a follow-up rather than a guess.

Verified: wants_change() over 6 cases, including every verdict field set to a
non-neutral value with no prose (False) and a Summary alone (True); Save carrying the
checkpoint and no publish sequence, Publish carrying the sequence and no Save controls,
both with the state bar and output panel; /save /publish /git /?all=1 /evalreview
/backups /analytics and a transcript page all 200; the legend rendering 5 rows, 3
columns, with "Moves on?" and "Mark reviewed" both absent. Contrast green.

Claude-Session: https://claude.ai/code/session_01VVNYqGza2dFdeWFX7qXnwb

THE FIELDS NEVER ASKED FOR ANYTHING, and the form said they did. Answer verdict sat
under a heading called "Triggers changes", so recording `stale` -- an observation
about an answer already given -- claimed to queue an assistant. It cannot: a verdict
value cannot describe what the new answer should say, so a batch built from one had
nothing for an assistant to act on and nothing for the eval to score.

What activates the assistant step under Publish is prose, and only prose: an Ideal
response under an exchange, or a Summary. Those two carry the "triggers changes" tag
and now have a tooltip saying exactly that.

  * NEUTRAL_VALUES and field_asks_for_change() are DELETED from eval_batch, not left
    unused -- a table that assertive is the first thing a reader would reach for when
    changing this logic again. wants_change() is prose-only, and formAsksForChange()
    in the client was changed in step; two copies that disagree is how a transcript
    reaches a batch nobody can act on.
  * The field form is one group, "No action -- recorded, but does not trigger AI
    updates to knowledge files."
  * clearChanges() no longer resets the dropdowns. It used to, which destroyed a
    reviewer's observations -- the verdict, the diagnosis, the kb_files they picked --
    to clear something those fields never caused. It empties the Ideal responses and
    the Summary, and says so.

SPLIT: "Save & Share" was two unrelated jobs under one tab -- a local checkpoint that
shares nothing, and a publish sequence that shares everything. Different audiences,
different risk, no ordering between them. Now `/save` and `/publish`, with `/git` kept
as an alias since it is linked from elsewhere and may be bookmarked. Recovery went to
Save (it undoes unsaved edits, the same subject as checkpointing them). The state bar
and Processing output panel are on BOTH: they are status, not functionality, and every
button on either page prints into that panel. Badges differ too -- unsaved edits on
Save, saved-but-unsent on Publish.

LEGEND: "Mark reviewed & next" was named in the button table and no longer exists --
it renders as "No changes & next" or "Changes suggested & next", which do materially
different things (skip the publishing steps, or join them). Both are now rows, with
the Save/Suggest/Re-review wording taken from the annotations. The "Moves on?" column
is gone: it was the least consequential thing any of these buttons does and read as a
property of the verdict.

Note: there is no `save` icon in FORGE_ICONS -- it holds 16 hand-curated paths and the
Forge package is not vendored here -- so Save uses `folder`. Adding the real
`content_save` path is a follow-up rather than a guess.

Verified: wants_change() over 6 cases, including every verdict field set to a
non-neutral value with no prose (False) and a Summary alone (True); Save carrying the
checkpoint and no publish sequence, Publish carrying the sequence and no Save controls,
both with the state bar and output panel; /save /publish /git /?all=1 /evalreview
/backups /analytics and a transcript page all 200; the legend rendering 5 rows, 3
columns, with "Moves on?" and "Mark reviewed" both absent. Contrast green.

Claude-Session: https://claude.ai/code/session_01VVNYqGza2dFdeWFX7qXnwb
@vijay-tylertech
vijay-tylertech requested a review from a team as a code owner August 30, 2026 21:12
@vijay-tylertech
vijay-tylertech merged commit 1a54196 into main Aug 30, 2026
1 check passed
@vijay-tylertech
vijay-tylertech deleted the feat/save-publish-split branch August 30, 2026 21:12
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