Skip to content

feat(instances): document calendar event linking - #597

Merged
ariesclark merged 135 commits into
vrchatapi:mainfrom
BASIC-BIT:codex/document-update-instance
Oct 7, 2026
Merged

ariesclark merged 135 commits into
vrchatapi:mainfrom
BASIC-BIT:codex/document-update-instance

Conversation

@BASIC-BIT

@BASIC-BIT BASIC-BIT commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • document PUT /instances/{worldId}:{instanceId} as updateInstance, with a required request body
  • add UpdateInstanceRequest with nullable calendarEntryId for linking and unlinking calendar events
  • add 400, 403, and 404 response components for the update operation, with the captured error messages as examples
  • add update-instance-calendar-link-lifecycle, which creates a group, an in-window event, an out-of-window event, a second group with its own event, and a group instance, then links and unlinks the event, asserts the outside-window, cross-group, and non-group rejections, and closes the instance and deletes the groups on every path
  • add update-instance-unauthenticated, update-instance-forbidden, and update-instance-not-found for the 401, 403, and 404 responses

Closes #596.

@pkg-pr-new

pkg-pr-new Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
pnpm add https://pkg.pr.new/vrchatapi/specification/vrchat@9565a5a

commit: 9565a5a

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new updateInstance operation is missing key spec elements for an authenticated endpoint (notably requestBody.required: true and a documented 401 response), and the added workflow would benefit from additional negative-path coverage.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds documented support and test coverage for linking/unlinking a calendar event to an instance via PUT /instances/{worldId}:{instanceId}, and extends the conformance workflow to exercise this behavior end-to-end.

Changes:

  • Added updateInstance (PUT /instances/{worldId}:{instanceId}) with an UpdateInstanceRequest body supporting nullable calendarEntryId.
  • Introduced UpdateInstanceRequest request schema to link (string) or unlink (null) an instance’s calendar event.
  • Extended the existing group-calendar lifecycle workflow to create a members-only group instance, link/unlink it to a calendar event, and close the instance.
File summaries
File Description
test/arazzo.yaml Extends the group-calendar lifecycle workflow to create an instance and validate calendar link/unlink behavior, then closes the instance.
openapi/components/requests/UpdateInstanceRequest.yaml Adds request schema allowing calendarEntryId to be set or cleared (null).
openapi/components/paths/instances.yaml Documents PUT /instances/{worldId}:{instanceId} as updateInstance with the new request body.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 4
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread openapi/components/paths/instances.yaml
Comment thread test/arazzo.yaml Outdated
Comment thread test/arazzo.yaml Outdated
Comment thread openapi/components/paths/instances.yaml Outdated
@BASIC-BIT
BASIC-BIT force-pushed the codex/document-update-instance branch from accb0a4 to b883025 Compare September 3, 2026 07:25
BASIC-BIT and others added 21 commits September 3, 2026 03:33
* feat: documents an additional argument on public profiles and some return data
Public Profiles did not contain groups or world info which is returned by withGroupAndWorlds url parameter

* test: adds a test for get public profile  with group and worlds

* feat: removes properties that getUser no longer returns
respect gets the generic not-implemented 404 where curl on the identical URL gets the 302; the mismatch is in the client, not the API.
A run whose session fails fails every workflow, and the runner calls GitHub's API once per annotation, which hung the step for minutes.
Isolates it from the --json-output flag as the cause of the hung step after pnpm test.
ariesclark and others added 26 commits September 29, 2026 04:20
* Initial impl for group audit log typings

* Fix linting

* created_at is snakecase

* Add a fallback for untyped group audit logs

* lint wants a newline

* refactor(schemas): type GroupAuditLogEntry as a base plus a oneOf of events

* refactor(schemas): share audit log payloads and type targetId per event

* feat(schemas): fall back to GroupAuditLogEntryUnknown for unmapped event types

* Fix loose targetId typings

* add downlevel vendor extension

* Type group.update fully
Pulled from an active group's logs, a test group's, and some inferred (iconId, nameplateId)

* Group role update

---------

Co-authored-by: Aries Clark <me@ariesclark.com>
…api#612)

World instance responses omit currentAvatarImageUrl, currentAvatarTags,
and currentAvatarThumbnailImageUrl, so clients that treat them as
required cannot decode getWorldInstance.
* chore: release 1.21.1

* Update openapi.yaml
@ariesclark
ariesclark added this pull request to the merge queue Oct 7, 2026
Merged via the queue into vrchatapi:main with commit 3c11717 Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Document PUT /instances/{worldId}:{instanceId} for updating an instance calendar link

6 participants