Skip to content

0.1.2

Choose a tag to compare

@captainpacket captainpacket released this 07 Sep 15:04
· 59 commits to main since this release
pip install forward-sdk==0.1.2

Everything in this release came from running the SDK against a real Forward instance (26.8.4) for the first time. Seven defects, none of which any test in this repository could have caught, because the tests and the code shared the same wrong assumption about what Forward sends.

Fixed

  • one_of() produced invalid NQE for enum fields. Comparing device.platform.vendor to a list of strings fails at run time, because NQE compares by type and an enum member is not a string. New enum_one_of() emits the form Forward accepts.
  • nqe.repo.source() never worked. Forward honours path and with=sourceCode only against a specific commit; asked at head it ignores both and returns the whole library without source. It now pins the commit first.
  • publish() could not create a query in a new directory, which Forward refuses. Missing directories are now created first.
  • discard() could not remove a directory. Forward requires a trailing slash to create one and rejects it to discard one, so every directory a failed publish created was stranded.
  • Forward AI messages all failed to parse. The answer arrives as finalAnswer and is an object, not a string. New answer_of() reads whichever field a deployment uses.
  • The CurrentUser shape was wrong: the account nests under user.
  • A repository listing returns a flat lastCommitId at head and a nested lastCommit against a pinned commit. Both are real, and reading only one loses the commit pin.

Confirmed

Worth as much as the fixes: contains really is rejected, so the 0.1.0 predicate fix was necessary rather than cosmetic. The snapshot listing really is unordered in both directions, so the ordering fix prevented an arbitrary snapshot being chosen. A resolved query path really does send a full 40-character commit id.

Verification was read-only apart from one AI chat and one staged draft, both removed afterwards.