Repository navigation
v0.6.0
The iHatePosting server now checks what an agent sends instead of quietly
ignoring it, and the skill, its references and the docs describe that.
Several sentences here used to say the opposite, so this is a minor release.
- Option names and values are checked. A key a network does not read
used to be saved and ignored: one customer's agent sentmadeForKidsfive
times and was refused each time for theytMadeForKidsit never set, and
privacy: "unlisted"published a YouTube video publicly. Mastodondirect
posted as public. Now such a key or value is refused with a 400, drafts
included. The 400 names the key that was meant ("did you mean
ytMadeForKids?") and lists the network's options.get_platform_rules
lists every option with its allowed values, not only the required ones. - A draft is scheduled with
update_post.reschedule_postrefuses a
draft. It used to schedule one without the network checks, so a post could
be armed that the publisher would only skip at send time.update_post
withaction: "schedule"runs the checks and splits the post per account. - Times come back in the owner's timezone too. Every reply that carries
scheduledAt(UTC) also carriesscheduledLocal: date, time and timezone.
whoamireturnsownerTimezone, andlist_postsfromandtoare whole
days in that timezone. - Refused instead of quietly dropped or changed:
- a date sent without
action: "schedule", which was saved as a draft; - a date that does not exist, such as 2027-02-30, which rolled into March;
- a media id that is not in the library;
- an unknown TikTok audience word, which became private.
- a date sent without
validate_posttakescreate_post's arguments (optionsand
overridesin the same shape, which it used to strip) and fills a missing
YouTube title the waycreate_postdoes, so the two answers agree.- A refused tool call is marked as an error (
isError), so a host or a
workflow no longer reads a refused post as made. - Uploads by link go one at a time per account. A second one waits up to
20 seconds for its turn, then answers 429. - The hosted server carries all of this; the local npm server gets the tool
side inihateposting-mcp0.11.0. Every option value in the examples and
the docs' samples (36 of them) is one the new checks accept.