Skip to content

Releases: ewanc26/wolfram

v0.39.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 06:19

Added

  • wf_xrpc_client_set_proxy adds an atproto-proxy header to an XRPC client, so a client can address one service through another host (the atproto service-proxying rule). Public fetch calls never carry it. (#196)

Changed

  • The vendored base64url dependency (used for PLC operation signature encoding) is pinned to an immutable commit rather than master, so clean configures resolve identical source until it is deliberately updated. (#198)
  • Chat (DM) calls are addressed to the account's PDS with atproto-proxy: <chat did>#bsky_chat rather than dialling the chat service's own host, which the public chat service does not accept. The chat service DID comes from describeServer, falling back to did:web:api.bsky.chat. The moderation WebSocket, which cannot carry the header on its upgrade, still dials the chat service directly. (#196)

v0.36.2

Choose a tag to compare

@github-actions github-actions released this 07 Oct 17:52

Changed

  • I've split profile_tab.c so the tab names, filters and cycle (wf_profile_tab_name, _filter, _next) can be linked without the agent; wf_agent_get_profile_tab_typed is in profile_tab_fetch.c. No API change. (#182)

v0.36.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 17:18

Added

  • I've added wolfram/profile_tab.h: the Posts, Replies, Media and Likes tabs of a profile (wf_profile_tab_name, _filter, _next) and wf_agent_get_profile_tab_typed, which fetches one page of a tab. Cobalt carried this alone; Indigo had only the Posts tab. (#179)

v0.35.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:41

Added

  • I've added wolfram/saved_feeds.h: wf_agent_get_saved_feeds returns the account's saved custom feeds with display names, read tolerantly from the raw preferences (V2, then V1), and wf_saved_feeds_parse is the pure JSON half. Cobalt and Indigo each carried the same ~80 lines. (#177)

Changed

  • I've replaced the 36 private copies of strdup and 38 of set_string scattered through src/ with one wf_str_dup and wf_str_set in wolfram/util.h, and deleted the copies. Behaviour is the same; wf_str_dup is NULL-safe and wf_str_set leaves the destination alone on an allocation failure, as every copy did. (#176)

Removed

  • I've deleted about 1,800 lines of dead code from src/agent/agent.c and post.c: six blocks under #if 0 that said they had moved to post.c, feed.c, graph.c and notification.c, and the helpers only they used. Nothing a caller can see changes. (#175)

v0.34.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 07:34

Added

  • I've added wf_agent_set_reply_gate and wf_reply_gate (wolfram/threadgate_postgate.h): the "everyone, followed and mentioned, or nobody" choice as one call, so a client does not build the threadgate rules itself. (#173)

v0.33.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 07:20

Added

  • I've added wolfram/attach.h: wf_attach_mime, wf_attach_scan_images and wf_agent_upload_image_file, so a client can list the JPEG and PNG files in a folder (within WF_ATTACH_MAX_BYTES) and upload one as an image embed without carrying its own copy. (#168)

v0.32.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 06:57

Added

  • I've added wf_agent_post_thread (wolfram/agent.h): post several texts as a thread, the first as a top-level post and each later one as a reply to the one before it with the first as root, so a client does not have to carry the root/parent bookkeeping. It stops at the first failure and says how many posts went through. (#166)

Fixed

  • I've fixed a use-after-free in wf_xrpc_server_stop: a WebSocket worker that had already left the stream list could still be about to call MHD_upgrade_action when the daemon was stopped and its upgrade handle freed. That was the intermittent relay_server segfault on macOS. stop() now waits for such workers. (#164)

v0.31.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 05:58

Added

  • I've added wf_muted_list (wolfram/muted_words.h): a fixed-size, allocation-free copy of the account's muted words with wf_muted_list_from_prefs, wf_muted_list_add and wf_muted_list_match, so Cobalt and Indigo stop each carrying the same struct, add function and load from the preferences. (#161)

Changed

  • wf_muted_words_match no longer has its own matching rules: it adapts the account's mutedWord to wf_mod_match_mute_words, the official client's matcher, so Cobalt, Indigo and the moderation code apply the same rules. The visible difference is that punctuation at the ends of a word is ignored (cat now matches cat. and (cat), still not cat's) and a single character matches as a substring. It still takes now, so the console's clock decides expiry. (#159)
  • wf_failure_classify reads a WF_ERR_HTTP with no HTTP status and no error name as a server failure rather than other, so a client that only has the wf_status (Indigo's sign-in and feeds) still says the service had a problem. (#160)

v0.30.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 01:48

Added

  • I've added wolfram/drag.h: wf_drag_begin, wf_drag_move and wf_drag_end turn a finger dragged along a list into whole rows to scroll, with the slop that separates a tap from a drag and the carry between frames, so Indigo and Cobalt scroll their feeds by touch with one implementation. Strict C89. (#157)

v0.29.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 01:23

Added

  • I've added wolfram/cdn.h: wf_bsky_cdn_url() rewrites a cdn.bsky.app image URL to another preset (avatar_thumbnail is 128 px) and to @jpeg or @png. A URL with no format comes back as WebP, which wolfram/image.h cannot decode, and the full-size presets are far larger than a console can draw; Indigo's avatars failed on both counts. Strict C89, with vectors. (#152)

Fixed

  • Decoding a JPEG on a thread made with libctru's threadCreate no longer crashes the 3DS build. stb_image's thread-local failure reason corrupted memory there, so Indigo's avatar loader died a moment after its first successful decode. wf_image_decode_rgba now builds stb without thread-local storage. Found by running Indigo in Azahar. (#154)