{"version":"2.1.234","anchor":"command-queue-moved-into-a-single-object","canonical_anchor":"command-queue-moved-into-a-single-object","heading":"Command queue moved into a single object","tier":"internal","area":"Message Queue","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/command-queue-moved-into-a-single-object","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Command queue moved into a single object\n\nQueued messages, cancels and deliveries now go through one queue object instead of scattered globals.\n\n**What**\n\nThe print and stream-JSON input loops no longer call scattered queue helpers or read module-level globals; queued user messages, cancels and wake-router deliveries all go through one queue object with named methods, and the query builder is handed that object rather than reaching for a global. No behaviour change.\n\n**Details**\n\n- Methods include enqueue, remove, peek, subscribe, dequeueAllMatching, markCancelPending, isFoldInFlight, recheckCommandQueue, hasUserIntentCommandsInQueue and getCommandQueueLength.\n- The `queue_depth` telemetry field and the `queue_depth_at_exit` field of `cli_drain_queue_complete` now read from that object.\n\n**Evidence**\n\n`cli_drain_queue_complete`, `queue_depth`\n\n- Area: Message Queue\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5"}