New plugins and bugfixes - #479
Conversation
|
uhh isnt it supposed to do the dict thingy here automatically |
|
can you merge the latest changes from main branch so that the ci can run |
|
done |
|
im extremely confused about these failed logs so I'll just wait |
|
I haven't fully reviewed the code yet, just here to help you fix the ci issue Also if the plugins are this big then please make seperate PRs in the future |
|
or if you can then please put them in different branches and open seperate pr |
|
i understand, i thought it was recommended to make one pr for everything |
|
take your time reviewing -- my discord dms are open aswell if you need faster answers to any question about the code |
| except Exception: | ||
| pass | ||
| delattr(old_map, attr) | ||
| exce |
There was a problem hiding this comment.
Import a module.
Because this function is meant for use by the Python interpreter and not for general use, it is better to use importlib.import_module() to programmatically import a module.
The globals argument is only used to determine the context; they are not modified. The locals argument is unused. The fromlist should be a list of names to emulate from name import ..., or an empty list to emulate import name. When importing a module from a package, note that __import__('A.B', ...) returns package A when fromlist is empty, but its submodule B when fromlist is not empty. The level argument is used to determine whether to perform absolute or relative imports: 0 is absolute, while a positive number is the number of parent directories to search relative to the current module.
the method doc itself suggest to not use it directly, wont block the merge for now but please take caution in future
|
reverted this PR cause somehow the old version checksum is changed, still trying to figure that out and fix it if possible |
PR Apply resolved the target PR with a single "exactly one PR associated with this sha" guard whose failure path called skip(), which exits 0. A sha -> PR association is eventually consistent, so a run starting seconds after a push can see an empty list: that is what happened to PR bombsquad-community#479, where PR Apply reported success having pushed nothing. The branch merged without its generated manifest entries and broke main, forcing the revert in bombsquad-community#485. Split the guard. Zero associations now polls the API five times before giving up, and both terminal outcomes (still zero, or more than one) fail the job instead of painting it green. skip() stays reserved for states that self-heal or are none of our business. Add a metadata-fixpoint commit status as the actual merge gate. PR Check cannot be one: it generates the metadata into its own workspace and tests that tree, so it goes green on a branch whose committed manifests are still empty. A correctly applied PR is a fixpoint, so the status reports success only when both apply steps found nothing left to push. Every path that leaves fixups unapplied now leaves the status unset rather than green. Make it a required check on main. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fwri7UzHia9kp3tPH8GgQz
PR Apply has never once applied fixups to a fork PR. It resolved the
target PR through repos/{repo}/commits/{sha}/pulls, and that endpoint
cannot answer for a fork PR's head commit: the commit is not reachable
from any ref of this repo, so the association index has nothing to
return and the call yields [] forever. This is not eventual consistency
that a longer poll would ride out.
The failure used to be invisible. Before the loud-failure change the
lookup fell through to `skip`, which exits 0, so the job painted itself
green having applied nothing - which is how #479 reached main unstamped.
Since then it fails loudly instead, correctly, and every fork PR has gone
red at that step (runs 34018273545, 34023650032, 34040502180, 34042614720,
34048956687, 34192652242).
Look the PR up by head repo owner + head branch instead. That filter is
exact, is available the moment the PR exists, and narrows on precisely
the fields HARD RULE 3 already requires the resolved PR to match. Nothing
is relaxed: state, base, head repo, head branch and head sha are all
still pinned against the workflow_run payload before anything is applied,
so a run can still only ever write to the branch it came from.
state=all, not state=open, so a PR merged between PR Check and this run
still resolves and takes the existing "PR not open; skipping" path rather
than looking unidentifiable. Several PRs from one head branch is ordinary
history for a reused branch, not the sha-adoption ambiguity HARD RULE 3
guards against - every candidate shares the same head repo and branch by
construction - so the newest by number wins instead of failing closed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CSZrwNCXvibEJ9PXCW1uqi
Requesting to add some plugins to plugman. I did add the dict, hope I didn't bomb something.