Platform

X scheduler, disabled until review

X publishing is not live yet. X uses a separate, isolated direct writer instead of Composio, and production publishing stays disabled until a terms review and the owner's risk acceptance are complete. This page describes what the X lane is built to do once it is enabled, and what it will not do.

X lane, once enabled

What the X writer is built to do.

  • Currently disabled

    While the gate is closed, every X publish returns a disabled result. Nothing is queued to X behind the scenes and nothing is simulated as published.

  • Text posts up to 280 characters

    Each post, and each part of a thread, is checked against 280 characters before anything is sent.

  • Images, GIFs, and video

    Up to 4 images (JPEG, PNG, WebP, or GIF) or MP4 video, uploaded in order and checked for processing before the post is created. Alt text is supported.

  • Threads as one ordered package

    A thread is approved and published as a unit. If the response for a later part is lost, the parts already published are recorded and the attempt is held for reconciliation instead of re-sending the thread.

  • One writer, isolated sessions

    X has exactly one writer, an internal service. Session material is kept in Key Vault and that service's memory, never in the app, logs, or prompts.

  • Session problems hold the destination

    An expired session or a login challenge holds the destination until the session is repaired. Rate limits are retried with backoff rather than in a loop.

Formats and limits

X formats and limits, for when the lane is enabled.

These limits are in the X lane's capability record and are enforced by the same validation as the other lanes. None of them can be published today.

  • Text

    Up to 280 characters per post.

  • Links

    Supported as part of the approved text.

  • Images

    Up to 4 per post. JPEG, PNG, WebP, or GIF.

  • Video

    MP4, checked for processing before the post is created.

  • Threads

    Ordered replies, each part within 280 characters, each tweet ID stored.

  • Not in scope

    Polls, X's own native scheduling, and long-form posts are not supported.

Scheduling, approval, receipt

How a X post goes from draft to receipt.

Every scheduled post moves through the same publication ledger. Each step is a stored record, so the calendar shows what actually happened rather than what was planned.

  • Content version

    The copy, media order, and destination options are frozen into a numbered content version. Editing the post creates a new version, and approvals for the old one no longer count.

  • Destination approval

    An approver signs off on that exact version for this X destination, optionally inside a time window. Scheduling outside the window needs reapproval.

  • Delivery intent

    Scheduling creates a delivery intent. It is refused if there is no current approval, the destination's identity is not verified, or the destination is held.

  • Publish attempt

    A worker claims the intent, validates the payload against the lane's capability record, prepares media in the documented order, and records each attempt and its events.

  • Verified receipt

    When enabled, a post is marked published only when the writer returns the tweet ID. The receipt stores the ID and the status URL. An uncertain write is never handed to a second writer.

  • Uncertain writes are reconciled

    If a request times out after dispatch, the attempt is marked uncertain and reconciled by looking the post up. It is never blindly retried, and a manual retry is refused while any attempt is unresolved.

  • Pause per destination

    Publishing can be paused for one destination, a campaign, a tenant, or everything. Resuming requires an admin and a recorded reason.

Connection

How an X account will be connected.

X is not a Composio lane. The account is attached through an owner-accepted session for that exact account, and SignalDeck reads the account back from the writer to confirm identity before any post is scheduled. A different account than the one on record holds the destination.

Lane status

X is disabled until its gate passes.

  • Available today

    Nothing publishes to X. You can plan and approve posts for the lanes that are live.

  • Gated

    All X publishing, pending an evaluation of the direct writer, a terms review, and the owner's acceptance of the risk.

  • Not supported

    Polls, native X scheduling, long-form posts, and any second write path to X.

When it is enabled

Who the X lane is designed for.

  • Campaign teams

    Approve a launch thread as one package and see exactly which parts went out if something fails mid-way.

  • Agencies

    Keep client X accounts behind the same approval and receipt rules as every other lane.

  • Teams wary of duplicate posts

    A timeout after sending is reconciled by looking the tweet up, not by sending it again.

FAQ

Frequently asked

Can I publish to X with SignalDeck today?

No. The X writer is disabled in production until its gate passes: an evaluation of the direct writer, a terms review, and owner acceptance of the risk.

Why doesn't X go through Composio like other platforms?

X is the one exception to the Composio rule. It uses a single direct writer so there is only one path that can post to an X account.

What will the limits be?

280 characters per post, up to 4 images or one MP4 video, and threads made of ordered replies.

What happens if a thread fails partway?

The parts that published are recorded with their tweet IDs, and the attempt is held for reconciliation rather than re-sending the thread.

Are polls or long-form posts supported?

No. Polls, X's native scheduling, and long-form posts are out of scope.

X

Plan now, publish to X when the gate opens.

Start with the live lanes today. X publishing turns on only after its review is complete.