A filed issue carries its destination as well as the sandbox mark #828
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!828
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/xh55-move-to-repo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #756.
ward exec gatePASS on all six steps.The defect in the title
The creation path set the
labelsfield to exactly one id:So a second label was unreachable, which is what blocked applying
move-to-repo/unknownat creation. The policy now carries a set: the sandbox id and a destination id, each independently optional, applied in a fixed order.What it deliberately does not do
It does not let the model's labels through.
docs/sirens-echo-sandbox-label.mdrecords that setting rather than merging is the control, chosen over three rejected layers, because issue bodies contain member-influenced text. That survives intact — a model that could name its own destination could route its own issue away from the people who read this tracker.TestAModelCannotChooseItsOwnLabelspins it.Step 1 was already done, and not where the spec said
The spec asked me to create
move-to-repo/unknownin the coilyco-gaming org label set, matching the convention of the existingmove-to-repo/*labels.It already exists — id 358 — and it is a repo-level label on
coilyco-gaming/sirens-echo, not an org label. So are the other fourmove-to-repo/*labels andSANDBOXED. The org set has ten labels and none of them are these.Nothing was created and no live mutation was needed. I checked the org set first, found nothing matching, and only then found them at repo level — which is the only reason this did not land as a duplicate label in the wrong scope.
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒move-to-repo/<destination>move-to-repo/unknownDefault rather than replacement
SIRENS_ECHO_DESTINATION_LABELnames the id to apply. The deployment sets the unknown one unless it knows the home — which is where the label-id-to-name mapping already lives, and it is howSIRENS_ECHO_SANDBOX_LABELalready works.Only one destination is ever sent. The
move-to-repo/*labels areexclusive: truein Forgejo, so the tracker keeps one per issue by itself and an ordinary triage label displacesunknownwith no help from this service. That is why the acceptance case "an explicit destination does not also carry unknown" needs no code — it is a property of the label scope.Acceptance
TestCreationCarriesEveryConfiguredLabel.TestEitherLabelAloneStillApplies.TestTheDestinationIsWhicheverOneIsConfigured, plus Forgejo's own exclusivity.Naming
sandboxLabelPolicyapplied two different labels once this landed, so it isissueLabelPolicyinissuelabels.go, andwithSandboxLabeliswithHarnessLabels. The source-text assertion insandboxwiring_test.gomoves with it, since it names the call it checks.Deployment half
Unchanged in shape from the sandbox label's: the id is configured there, and the
labelsfield is already granted on create-issue. UntilSIRENS_ECHO_DESTINATION_LABELis set, behaviour is exactly today's.