Commit Graph

6 Commits

Author SHA1 Message Date
skylar taylor-barrick 0e55340771 Migrate shared AI widgets to egui 0.37 (#105)
* refactor(ai-egui): migrate shared widgets to egui 0.37

* egui037: qualify shared AI widgets and downstream dependency pins

* docs(ai-egui): record the committed migration qualification

* fix(ci): provide Vulkan snapshots and allow pinned fork sources

* test: make cancellation-before-load coverage deterministic
2026-10-25 16:23:02 +00:00
Jeremy 7428cb8c75 fix(ai-core,ai-egui): required inputs and test-result addresses, matching the upstream contract fixes (#59)
* refactor(ai-core): move the connection presets into their own file

draft.rs was 519 lines. The built-in presets and their static model lists are data that changes on a different
schedule from the save rules, so they move to draft/presets.rs unchanged. Three mutation cases follow the code.

* fix(ai-core,ai-egui): match the upstream contract fixes for required inputs and test-result addresses

A model now has to accept every input a tool sends and require no input the tool cannot supply; the picker, binding,
app status and planning agree, and a refusal happens before a key is read or anyone is asked to consent. A connection
test result is recorded with the address the test started with (ConnectionDraft::set_models(address, models)), so a late
answer for an old address is refused and loaded, preset and tested models keep their address through repeated edits.
The shared connection panel passes the captured address. docs/CORE-SYNC.md says what this local copy still adds beyond
craft-libs, and the mutation group 'ca' covers the ten safety rules. Two mutation anchors that matched twice are fixed.

* docs: document the functions this change adds

CodeRabbit's docstring check was below its 80% bar. Test functions get a one-line sentence from their name; helpers and session methods get a real description.
2026-10-20 18:08:35 +01:00
skylar taylor-barrick 8081df7f1d ai-egui: drop a test's answer once the address has moved on (#33)
Only the Test button is disabled while a test runs; the address field
stays editable. Edit it mid-test and the answer still lands, so the panel
reported "Connected. Models found: N" for an address that was never
tested and carried those models onto the saved connection.

The form already treats an edit as invalidating: it clears the models and
the result line, saying an earlier test no longer describes what is
typed. The answer simply arrived afterwards and put them back. The panel
now remembers the address each test was started against and ignores an
answer that no longer matches, leaving the form as untested.

The runner's generation counter does not cover this: it discards answers
from superseded tests, and editing the address starts no new test.
2026-10-17 09:59:27 +01:00
Jeremy aea912bb55 chore: prepare the repository for transfer to storytold/craft-ai-integrations
- Rename the contract crate ai-model to ai-core (package craft-ai-core), matching the crate
  proposed for craft-libs.
- Port the two fixes already made in the craft-libs copy: consent expiry is per kind of data,
  and models found by a test at a new address survive a save (ConnectionDraft::set_models).
- Take docs/research, the SAM 3 handoff notes and their scripts out of the tree (local paths and
  evidence files). Move the deliberate-bug harness to tools/mutation and repair ten cases that no
  longer matched the source.
- Rewrite the README, add docs/STATUS.md (tested, run for real, not verified), fix LAYOUT,
  PLATFORM-CONTRACT and CONTRIBUTING, add the missing ai-comfyui manifest fields, point the
  repository URL at storytold/craft-ai-integrations, and add a wasm check for craft-ai-features.
- Allow clippy::large_enum_variant on TestTarget, which the larger draft now trips.

Checked on Windows: fmt, clippy --all-targets -D warnings on all 16 crates, 967 tests passed
(15 ignored), wasm check for craft-ai-core and craft-ai-features. Not run: cargo-deny, Linux,
macOS, live services, the real keychain test. The contract stays provisional until craft-libs
review.
2026-10-16 20:25:49 +01:00
Jeremy e621f54dfe Add shared Craft AI adapters and durable ComfyUI outputs 2026-10-11 17:12:45 +01:00
Jeremy a3c31bd7ad craft-ai-model: interim AI layer for the Craft apps (first draft) 2026-10-11 12:04:59 +01:00