Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 0 additions & 207 deletions .github/workflows/pr-to-slack-codex.yml

This file was deleted.

10 changes: 8 additions & 2 deletions .github/workflows/uci-stale-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.sha }}
cancel-in-progress: true
# A sweep is cheap and idempotent, but cancelling one part-way leaves the triage
# half-applied, so queue behind a running sweep instead of superseding it.
group: ${{ github.workflow }}-${{ github.ref }}

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.

[suggestion] This doesn't fix the scenario the comment describes. On a schedule event github.ref is the default branch ref (refs/heads/main), and a workflow_dispatch run from main resolves to the same refs/heads/main — so dispatch and cron still land in one group and, with cancel-in-progress: true, the dispatch still cancels a running sweep. Exactly as they did under github.sha, where both also share the head SHA of an unchanged main.

If anything the ref key collapses more runs than the SHA key did: two cron runs across a commit to main had distinct SHAs and would not have cancelled each other, but they share a ref and now will.

The change that actually protects an in-flight sweep is cancel-in-progress: false (a stale sweep is idempotent and cheap; there's little value in cancelling one). If you want cron and manual runs isolated instead, fold the event into the group:

group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}

Either way the comment needs rewording, since it currently justifies the key by a property the key doesn't have.

cancel-in-progress: false

jobs:
stale:
Expand All @@ -26,3 +28,7 @@ jobs:
uses: sei-protocol/uci/.github/workflows/stale-check.yml@65901242783550521f25a19199a6b10e54550b97
with:
days-before-pr-stale: 28
# Disable both paths: -1 stops new stale labels, while the close setting
# protects issues that already carry the stale label.
days-before-issue-stale: -1

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.

[nit] Worth double-checking that stale-check.yml at UCI 6590124 actually declares days-before-issue-stale in its workflow_call.inputs — an input the callee doesn't declare fails the whole reusable-workflow call, and this only runs on a daily cron, so a break wouldn't surface until the next scheduled sweep. I couldn't fetch the UCI workflow from this environment to confirm. It fails loudly rather than silently, so this is low risk, but a one-off workflow_dispatch after merge would confirm it in seconds. The -1 value itself is right: that's actions/stale's documented "never stale" sentinel, and disabling staling also makes the close timer unreachable for issues.

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.

[suggestion] Two things worth confirming before merge:

1. Does UCI v0.0.15 actually declare a days-before-issue-stale input? A reusable workflow rejects inputs it does not declare with an invalid-workflow error, which would break the sweep entirely rather than just the issue half. I could not fetch sei-protocol/uci from this sandbox to check the input schema, so this is a verification ask, not an assertion — if it resolves, ignore.

2. -1 disables marking, not closing. In actions/stale, the close path is gated on the issue already carrying the stale label, independent of days-before-stale. days-before-issue-close falls back to days-before-close (UCI's default per your comment: 2 days), so any issue that already picked up the stale label would still be closed on the next sweep — exactly the outcome this change is meant to prevent. #317 landed today and the cron is 0 12 * * *, so realistically zero or one sweep has run and the blast radius is probably empty, but the safe form is to also pass days-before-issue-close: -1 (if UCI exposes it) or to confirm no open issue currently carries the stale label.

days-before-issue-close: -1

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.

[suggestion] The issue path is now fully explicit, but days-before-pr-close still isn't set, so PR closing continues to inherit whatever UCI defaults to — per the PR description that's 2 days on the issue side. If the same default applies to PRs, a PR goes stale at day 28 and is auto-closed around day 30 on a policy this repo never picked, which is precisely the failure mode this PR fixes for issues.

Worth setting it explicitly alongside the other three (whatever the intended value — -1 to only label, or a deliberate grace period) so the whole policy is readable from the caller rather than half-inherited.

6 changes: 1 addition & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,7 @@ node_modules
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.vscode/

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.

[nit] Confirmed nothing is lost here: git ls-files .vscode/ is empty, so extensions.json was the only tracked file and the settings.json / tasks.json / launch.json negations were dead entries.

One forward-looking note — ignoring the directory (.vscode/) rather than its contents (.vscode/*) means a future !.vscode/settings.json will not work, since git does not descend into an excluded directory to re-include children. If you ever want to share a debug config, this line has to go back to .vscode/* first. Fine to leave as-is if the intent is that nothing under .vscode/ is ever shared.

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.

[nit] Nothing is currently tracked under .vscode/ (git ls-files .vscode/ is empty), so this breaks nothing today. Note it does close the door on committing a shared settings.json/launch.json later without git add -f — for a repo standardized on Biome, a checked-in settings.json pinning Biome as the default formatter is the usual way to keep contributors from reformatting with Prettier. Keeping the allowlist for settings.json/launch.json/tasks.json and only dropping extensions.json would preserve that option.


# misc
/.sass-cache
Expand Down
3 changes: 0 additions & 3 deletions .vscode/extensions.json

This file was deleted.

Loading
Loading