feat(process): one confirmation runs a set to its end, within what its card showed; no card for a change the person may not make #113
Open
james.maes
wants to merge 6 commits from
feat/one-card-for-a-set into develop
pull from: feat/one-card-for-a-set
merge into: QRun-IO:develop
QRun-IO:develop
QRun-IO:feat/compact-answers-and-output-ceiling
QRun-IO:fix/render-widget-follows-data-access
QRun-IO:release/0.1
QRun-IO:rc/develop-into-release-0.1-registry
QRun-IO:feat/process-tools
QRun-IO:feat/writes-follow-the-person
QRun-IO:fix/atomic-confirm-and-closed-surface
QRun-IO:fix/tool-service-owns-policy-and-identity
QRun-IO:fix/tool-call-service-enforces-its-checks
QRun-IO:feat/tool-registry
QRun-IO:docs/actions-and-mcp-design
QRun-IO:rc/develop-into-release-0.1-everyone
QRun-IO:feat/store-reads-as-trusted-code
QRun-IO:rc/develop-into-release-0.1-weekly
QRun-IO:feat/weekly-budget
QRun-IO:rc/develop-into-release-0.1-save
QRun-IO:feat/save-and-schedule-analysis
QRun-IO:rc/develop-into-release-0.1-analyze
QRun-IO:feat/analyze-records
QRun-IO:fix/turn-watchdog-never-hangs-develop
QRun-IO:fix/turn-watchdog-never-hangs
QRun-IO:fix/live-thread-placeholders
QRun-IO:merge/develop-into-release-0.1
QRun-IO:automation/qbit-rc-pending
QRun-IO:fix/transcript-stored-before-message-end-develop
QRun-IO:fix/transcript-stored-before-message-end
QRun-IO:main
QRun-IO:archive/qrun-github-cutover-20261101/ca9212731dc2/develop
QRun-IO:feat/openai-compatible-provider
QRun-IO:dependabot/maven/develop/maven-minor-and-patch-634f43d868
QRun-IO:dependabot/github_actions/develop/github-actions-0fdda1077f
QRun-IO:feature/orb-0.8-track
QRun-IO:feature/orb-0.7.18
QRun-IO:feature/orb-0.7.17
QRun-IO:feature/orb-standardize-release-0.1
QRun-IO:feature/orb-main-standardization
QRun-IO:feature/shared-codeql
QRun-IO:feature/orb-0712-stable-gate
QRun-IO:feature/orb-rc-worker
QRun-IO:feature/orb-0.7.11
QRun-IO:feature/central-ci
QRun-IO:feature/conversation-management
QRun-IO:feature/starter-prompts-from-access
QRun-IO:feature/turns-not-jobs
QRun-IO:feature/assistant-attachments
QRun-IO:feature/assistant-optional-provider-health
QRun-IO:fix/assistant-health-tile-wording
QRun-IO:feature/fail-soft-renders
QRun-IO:fix/records-render-and-stream-context
QRun-IO:ci/release-rc-secrets-inherit
QRun-IO:feature/ui-api-1.6
QRun-IO:fix/shutdown-hook-weak-runtime
QRun-IO:fix/help-bundle-version
QRun-IO:feature/health-checks
QRun-IO:feature/jobs-tray
QRun-IO:feature/help-bundle
QRun-IO:feature/transcript-redaction
QRun-IO:feature/foreign-keys
QRun-IO:feature/schema-indexes
QRun-IO:fix/assistant-defaults-rollback
QRun-IO:feature/durable-turns
QRun-IO:fix/assistant-defaults-guards
QRun-IO:feature/tables-populated-defaults
QRun-IO:feature/provider-spi-package
QRun-IO:feature/email-api
QRun-IO:feature/orb-0.6.9
QRun-IO:feature/write-mode
QRun-IO:feature/x1-y1-channel-wall
QRun-IO:feature/email-qbit
QRun-IO:feature/spec-endpoints-core-invoker
QRun-IO:feature/provider-api-module
QRun-IO:feature/p7-scheduled-tasks
QRun-IO:feature/bulk-load-tools
QRun-IO:feature/p6-rag
QRun-IO:feature/presentation-demo-shots
QRun-IO:feature/answer-presentation
QRun-IO:fix/core-alerts-rc5
QRun-IO:feature/p5-routing-fallback
QRun-IO:feature/p4-budgets
QRun-IO:feature/p3-hipaa-routing
QRun-IO:feature/p2-bedrock-vertex
QRun-IO:feature/p1-provider-registry
QRun-IO:feature/spec-providers-write-mode-wall
QRun-IO:feature/demo-pending-card
QRun-IO:feature/release-rc-automation
QRun-IO:feature/demo-screens
QRun-IO:feature/profiles-skills-access
QRun-IO:feature/ui-api-tools
QRun-IO:feature/strict-tools-grammar-fix
QRun-IO:feature/app-home-settings
QRun-IO:feature/fix-rename-version-labels
QRun-IO:feature/note-burned-rc
QRun-IO:feature/assistant-record-screens
QRun-IO:feature/robustness-test-flake
QRun-IO:feature/ga-only-release-tags
QRun-IO:feature/snake-case-table-names
QRun-IO:chore/qrun-repo-standard
QRun-IO:feature/pom-revision-comment
QRun-IO:feature/phase-0-1-assistant
6
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
18e893b835
|
fix(process): a card shows all a screen says; a screen that says more than a card shows is not passed
The first card showed the first 300 characters of a screen's text and then passed the screen. It now shows the whole text (up to 2,000 characters), and a screen whose text is longer is one the card did not show in full: the run stops there. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |
||
|
|
d6bfe77c78
|
Merge branch 'fix/render-widget-follows-data-access' into feat/one-card-for-a-set
# Conflicts: # CHANGELOG.md # UPGRADE.md |
||
|
|
50845aa99b
|
fix(tools): render_widget follows the assistant's data access; no widget is rendered until a host allows it
A widget is code of the application and can show rows of any table, so render_widget could hand a model the rows of a table the assistant may not read. The tool now refuses, before the application is asked, every widget the host did not allow by name (withAllowedWidgetNames, empty by default), one it hid, and one that reads a table the assistant may not read (new: withWidgetTables). Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |
||
|
|
47d3e34f8c
|
docs(process): the design of one confirmation for a set; the card's records and what they were, in the API
docs/one-card-for-a-set.md is the design and the safety argument for parts A to D; README, UPGRADE, CHANGELOG and the agent notes follow it. UI API extension assistant 1.11.0 (additive): AssistantActionV1.recordCount, records and recordsBefore for a run over a set. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |
||
|
|
583f8f1f9d
|
test: the existing security tests follow 'no card for what cannot happen'
A person the application refuses is refused before a card where the application says so beforehand; the confirm-time refusal (a permission that goes between the card and the confirmation) keeps its tests, with the UI's own status and message. The tool-set file changes in one description (run_process), replaced as text. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |
||
|
|
11fc143e6d
|
feat(process): one confirmation runs a set to its end, within what its card showed; no card for a change the person may not make
A confirmed run_process goes through the process's own init and step operations as the person and passes a screen for them only when it shows nothing their card did not: its text and inputs were on the card with the values the process has now, and a review counts exactly the records of the card and, with every record validated first, has no warning and no error. Anything else comes back to the person with a new card and nothing stored. The set is frozen by primary key and by one digest over its records as the person read them; a set that changed is not run. The card keeps what the records were (how many, a sample of 20) and lists the whole set by name. The assistant no longer creates a job: when the application itself hands the work to a background job, the job is the person's, it is waited for, and its outcome (rows done, failed and why) is the card's. A job the application created waiting is cancelled and the run reported as not done. A change to records of a table is proposed only to a person the application lets make it (what it tells their own screens); otherwise they are told so and there is no card. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |