Skip to content

[PM seat] domain:services — ⏳ vacant · last session_01Evb5jFDZGKQE9KG4jbMfMF #6021

Description

@claude

This post is the single authoritative registry for the domain:services seat (seat-post protocol; index label:pm:seat). Single writer: the incumbent only. Read side: this body plus every comment newer than the body's last edit. ⛔ Shift narrative does not belong in the body — this post carries current values only.

Body refreshed at stand-down by session_01Evb5jFDZGKQE9KG4jbMfMF at 2026-09-25T11:38Z. The seat is ⏳ vacant. §1–§2 are this session's handover; §3–§5 carry forward.

1. Current PM — ⏳ vacant

  • Last incumbent: session_01Evb5jFDZGKQE9KG4jbMfMF (assignee os-sales, removed at stand-down). Seated 2026-09-24T12:48Z. Released at the maintainer's word in this seat's session: 「你可以下班了」. The stand-down brief posted right after this refresh is the release marker and this seat's final write.
  • Successor: /pm-dispatch services or /pm-dispatch 接手, in a session created with objectstack-ai/objectstack in its sources (see §4). Read this body first, then confirm os-dev with an accepted Agent call before claiming.
  • Write identity (unchanged): the fleet relay (objectstack-fleet[bot]) via latest-main scripts/pm/*. ⛔ No user-token writes.
  • Nothing stays behind: 0 in-flight devs, 0 open lane PRs, 0 tails.
    • The patrol Routine trig_01FexzvbQNMRMLhExuCLFFdz is deleted, and list_triggers shows no other Routine for this session.
    • Every dispatch this shift ran as mode:subagent, so no dev cloud sessions exist to archive.

2. Handover ledger — reading at stand-down (2026-09-25T11:38Z)

3. Hot-file serial queue

surface held by until
— — (empty)

4. Standing facts measured in this lane — ⛔ re-measure before relying, but do not re-discover

  • 🔴 The agent roster is fixed at SESSION CREATION. A seat spawned without a repo source can attach the repo mid-session and gain its skills, but ⛔ never its agents — measured twice by session_018avjADnTGyuCcmmLWBxaNr with a register_repo_root in between. ⇒ a successor must carry the repo in session_context.sources at creation, and must confirm os-dev before claiming. ⚠️ The roster listing is only the declared surface; the confirming reading is an accepted Agent call.
  • CI must be read latest-run-per-check-name. A head carries several runs of one name and an earlier failure can be superseded by a later skipped/success. Already in platform-readings.md:301.
  • mergeable_state: blocked right after a ready-flip is a transient — ⛔ do not diagnose it at the one-minute mark.
  • A PR-body PATCH re-appends the _Generated by_ footer ⇒ send zero footers when editing a body.
  • ⭐ An issue-body PATCH re-appends it too — measured on this very post at 2026-09-19T09:27Z: zero footers sent, exactly one footer stored. ⚠️ This seat first wrote the OPPOSITE here from assumption and the very next read-back falsified it; the rule is the same on both surfaces, so send zero footers when editing either.
  • ⭐ A comment POST normalises whitespace: the stored body can differ from what was sent by an inserted newline before a trailing ---. ⇒ a read-back equality check on fragile comments should compare fragments, not byte-identity, or it will cry wolf.
  • ccr/auto_merge echoes merge_method back wrongly ⇒ ⛔ that field cannot tell queue landing from direct merge. The real criterion is the timeline's added_to_merge_queue; the landing criterion is delivery on origin/main, ⛔ never the PR-closed event.
  • A closing keyword does NOT clean the board. Auto-closed cards keep their pm:* state label and assignee ⇒ clear both on reading the merge event, with a note (⛔ never a silent assignee drop — the H47 shape).
  • check-expected-skips.mjs / check-half-states.mjs will not run without pnpm install ⇒ their exit is NOT MEASURED, ⛔ never read as a clean board.
  • The dev writes a PR body once at POST /pulls and ⛔ never PATCHes it ⇒ on a patch round the body goes stale; the dev hands the markdown over in its report and the seat appends it, marked as the seat's append.
  • ⭐ git-history.mjs touch REFUSES rather than guessing, and that refusal is load-bearing. On a shallow clone the floor is diffed against the empty tree, so raw git log -1 -- <path> answers at exit 0 with a real, plausible, WRONG sha. Measured this seating on references/lanes/services.md; the true value came only after unshallowing to 14358 commits.
  • ⭐ Token grep answers 「does this string appear」, which is ⛔ not the question when the question is 「is it declared / exported / executed」. Prose describing a thing is indistinguishable from the thing. A positive control only licenses a zero when it sits on the same subject as that zero (same file, same corpus, same spelling convention). ⭐ Live example carried on-card at [finding] service-messaging: sms-channel declares no isAvailable() — fan-out can suppress email on an absent transport but never sms (#17732's unfinished half) #18567: a bare grep finds isAvailable in sms-channel.ts and reads as the premise being falsified — the hit is docblock prose about the email channel, and a declaration-shaped query returns the real members and no isAvailable.

Platform facts measured by the last incumbents (session_01Evb5jFDZGKQE9KG4jbMfMF and its predecessor)

  • REST reachable: /rate_limit core 15000/15000, repo-scoped read leg 200 ⇒ session gate open. Write identity huangyiirene.
  • ⚠️ gh is ABSENT in this container — REST goes through curl or python urllib.
  • ⚠️ node's fetch does ⛔ not read HTTPS_PROXY here; scripts/pm/* re-exec themselves with --use-env-proxy and say so on stderr.
  • Publication layer for this repo (registration duty): a merge to main here does ⛔ not deploy or publish ⇒ this lane's landing criterion is MERGED — except that a fix whose consumer is another repo is judged on installability, ⛔ not on merge.
  • ⛔ cloud, objectui, hotcrm are NOT reachable from this session (GitHub scope: objectstack-ai/objectstack). Consumer-side readings on cards filed from those lanes are accepted as declared and ⛔ are not re-verifiable here.

5. Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    pm:seatPM seat registry issue - single-writer body, index = this label

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions