8000 feat: override list, open options and prepared limit setters (minigraf#872) by adityamukho · Pull Request #15 · project-minigraf/minigraf-c · GitHub
[go: up one dir, main page]

Skip to content

feat: override list, open options and prepared limit setters (minigraf#872) - #15

Merged
adityamukho merged 5 commits into
v3from
feat/872-binding-overrides
Nov 10, 2026
Merged

adityamukho merged 5 commits into
v3from
feat/872-binding-overrides

Conversation

@adityamukho
@adityamukho adityamukho commented Nov 10, 2026 •
Copy link
Copy Markdown
Contributor

Brings the C binding up to core v3's override surface (minigraf#872).

  • "allow_overrides": an array of "max_derived_facts", "max_results", "query_memory_limit", "max_iterations". A missing key means the defaults and [] means none. An unknown name is API-017, as a bad "synchronous" value is. minigraf_overridable_defaults() returns core's Overridable::DEFAULTS as a JSON array; free it with minigraf_string_free.
  • "transaction_chunk_facts" and "max_iterations". A negative count is rejected by the JSON reader with API-017, as other counts are.
  • minigraf_prepared_with_max_derived_facts / _with_query_memory_limit / _with_max_iterations(pq, size_t) return a new handle, freed with minigraf_prepared_free independently of pq. SIZE_MAX means no limit. The arguments are size_t, so there is no negative case. The handle's registry is now Arc<Mutex<Option<Vec<..>>>>, shared with its prepared queries and set to None by minigraf_close. Derived handles then fail with API-018, and so does a setter on a closed query. include/minigraf.h is regenerated with cbindgen 0.29.2.
  • Rust tests cover all of the above. The consumer contract runs the defaults, the options, a setter and API-018 after close.

Pin. Cargo.toml pins core d9755c02, the v3 merge commit of project-minigraf/minigraf#883. Moving the pin from 02243f16 needed no other fix. The macOS jobs run on macos-15 (the macos-14 runner was retired; fixed separately on v3).

Refs project-minigraf/minigraf#872.

🤖 Generated with Claude Code

https://claude.ai/code/session_01H2a7QouMzKp3tAWxgVsxRf

adityamukho and others added 4 commits November 10, 2026 13:16
…f#872)

Exposes core v3's override surface: an allow_overrides list with the
default list read from core's Overridable::DEFAULTS, the
transaction_chunk_facts and max_iterations open options, and the three
PreparedQuery limit setters, each returning a new prepared query and
leaving the receiver unchanged.

Refs minigraf#872.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2a7QouMzKp3tAWxgVsxRf
Temporary: re-pinned to the v3 merge commit once minigraf#883 merges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2a7QouMzKp3tAWxgVsxRf
@adityamukho
adityamukho force-pushed the feat/872-binding-overrides branch from b34f086 to ca7a6a0 Compare November 10, 2026 10:19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2a7QouMzKp3tAWxgVsxRf
@adityamukho
adityamukho marked this pull request as ready for review November 10, 2026 10:54
@adityamukho
adityamukho merged commit 7729bbe into v3 Nov 10, 2026
15 checks passed
@adityamukho
adityamukho deleted the feat/872-binding-overrides branch November 10, 2026 11:17
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

0