Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
189d7b4
Merge pull request #51 from serialexperimentslainnnn/develop
serialexperimentslainnnn Aug 10, 2026
f2948d4
Merge pull request #53 from serialexperimentslainnnn/develop
serialexperimentslainnnn Aug 10, 2026
4b5d0f6
docs(backlog): add per-agent tabs with their own transcripts
serialexperimentslainnnn Aug 10, 2026
8ed22d0
docs(map): add PROJECTMAP.md as the repository index
serialexperimentslainnnn Aug 10, 2026
80c50ee
feat(agents): model the binary's subagent tree and who owns it
serialexperimentslainnnn Aug 10, 2026
3255a1e
refactor(agents): keep the agent index in ~/.claude, not in .idea
serialexperimentslainnnn Aug 10, 2026
86034a1
feat(agents): route subagent output out of the main transcript
serialexperimentslainnnn Aug 10, 2026
65861df
feat(agents): add the Agents and Subagents tab strips
serialexperimentslainnnn Aug 10, 2026
451072a
feat(agents): show each agent's transcript in its own tab
serialexperimentslainnnn Aug 10, 2026
fdfb8f5
build: bump the version to 5.5.0
serialexperimentslainnnn Aug 10, 2026
44c4d6a
fix(agents): rows only when they exist, as a real tree, at every level
serialexperimentslainnnn Aug 10, 2026
c8b2e85
refactor(dashboard): drop agent data from the Session view
serialexperimentslainnnn Aug 10, 2026
9b7953d
fix(restore): the binary's synthetic lines are not the user speaking
serialexperimentslainnnn Aug 11, 2026
7a78c8b
feat(tasks): keep a background task, and its output, after it ends
serialexperimentslainnnn Aug 11, 2026
b5499a0
feat(settings): move the configuration into the IDE's password safe
serialexperimentslainnnn Aug 11, 2026
d4eef1f
feat(agents): draw the agent tabs in the page, not in Swing
serialexperimentslainnnn Aug 11, 2026
73a531a
feat(agents): give each agent its own transcript, and draw it once
serialexperimentslainnnn Aug 11, 2026
0197e6a
refactor(css): split the stylesheet, and delete what nothing can reach
serialexperimentslainnnn Aug 11, 2026
dd44df5
fix(boot): the loading screen no longer covers the chat tabs
serialexperimentslainnnn Aug 11, 2026
dfa233d
refactor(ui): take three subjects out of the chat panel
serialexperimentslainnnn Aug 11, 2026
cf6d59c
build(protocol): re-baseline to claude 2.1.226 / SDK 0.3.227
serialexperimentslainnnn Aug 11, 2026
cd00cd8
docs: record 5.5.0 and the map it changed
serialexperimentslainnnn Aug 11, 2026
3d004e2
fix(compat): declare the JCEF plugin, or there is no UI on 2026.2
serialexperimentslainnnn Aug 11, 2026
a9f33d2
docs: say the floor moved, and why a user would care
serialexperimentslainnnn Aug 11, 2026
483c09f
docs(readme): make it a user guide, not a feature list
serialexperimentslainnnn Aug 11, 2026
1a3604b
docs: correct what the README claimed and never checked
serialexperimentslainnnn Aug 11, 2026
7411652
fix(agents): stop calling live agents dead, and dead ones failed
serialexperimentslainnnn Aug 11, 2026
9304ccf
fix(tasks): an agent is not a background task
serialexperimentslainnnn Aug 11, 2026
c494fc8
fix(ui): the waiting screens are transcript rows, not overlays
serialexperimentslainnnn Aug 11, 2026
3b273bc
fix(tabs): make the row reachable — grab it, and centre what you select
serialexperimentslainnnn Aug 11, 2026
fab1907
feat(sessions): name a chat after what you asked it
serialexperimentslainnnn Aug 11, 2026
bdd5e46
docs(changelog): record 5.5.0
serialexperimentslainnnn Aug 11, 2026
cf73e32
fix(ui): stop the readout shuffling on every tick
serialexperimentslainnnn Aug 11, 2026
6a856c3
refactor(protocol): one file per subject, and route deltas by parent
serialexperimentslainnnn Aug 13, 2026
74d4bd7
refactor(permission): split the guard by rule family and phase
serialexperimentslainnnn Aug 13, 2026
1ce4e3f
feat(settings)!: move the configuration into the IDE keychain
serialexperimentslainnnn Aug 13, 2026
addf9dc
feat(agents): give every agent its own tab, and read its output live
serialexperimentslainnnn Aug 13, 2026
f79065f
refactor(ui): split the chat panel and stop leaking a Project
serialexperimentslainnnn Aug 13, 2026
506f99d
refactor(jcef): 30 modules, 7 stylesheets, and stop the tab bar flicker
serialexperimentslainnnn Aug 13, 2026
8089130
feat(git): read-only Git context in the tool window
serialexperimentslainnnn Aug 13, 2026
c2a41b0
feat(process): tell the agent it is in an IDE, and drop dead code
serialexperimentslainnnn Aug 13, 2026
b9b8f79
test(ui): point the end-to-end suite at the UI that actually exists
serialexperimentslainnnn Aug 13, 2026
63a957a
ci: make the attribution gate check what the notices promise
serialexperimentslainnnn Aug 13, 2026
5f00ac8
docs: describe the plugin that exists, not the one that did
serialexperimentslainnnn Aug 13, 2026
6f781c5
feat(session): review the whole session's changes, and show the plan
serialexperimentslainnnn Aug 13, 2026
8933592
chore: invert .gitignore into an allowlist, and commit it
serialexperimentslainnnn Aug 13, 2026
e1061a0
build: raise the floor to the build that carries JCEF
serialexperimentslainnnn Aug 14, 2026
3163175
ci: run the UI end-to-end suite, nightly and never on a pull request
serialexperimentslainnnn Aug 14, 2026
edb05cb
docs: generate the project map from the sources, and gate it
serialexperimentslainnnn Aug 14, 2026
f2f9b33
fix(permission): bound path resolution by time, not by a count
serialexperimentslainnnn Aug 14, 2026
b00c172
fix(permission): ask each leaf the question its role allows
serialexperimentslainnnn Aug 14, 2026
a14372b
test(ui): give the sandbox fixture a repository of its own
serialexperimentslainnnn Aug 14, 2026
7d26da2
test: fail the build on a declaration nothing reaches
serialexperimentslainnnn Aug 14, 2026
c532a3f
feat: agent tabs, keychain settings, Git integration, re-wired seams
serialexperimentslainnnn Aug 17, 2026
0c95706
fix(scripts): let bootstrap-ci.sh execute
serialexperimentslainnnn Aug 17, 2026
a5e1756
chore(release): rotate the CI artifact signing key
serialexperimentslainnnn Aug 17, 2026
f0da43e
chore(protocol): re-baseline to claude 2.1.233 / SDK 0.3.233
serialexperimentslainnnn Aug 17, 2026
4791361
build: allowlist what the artifact may contain
serialexperimentslainnnn Aug 17, 2026
13bec4f
test: gate private declarations and unloaded assets
serialexperimentslainnnn Aug 17, 2026
2d3383b
fix(usage): report a reset rate-limit window as 0%
serialexperimentslainnnn Aug 17, 2026
f91e2c2
feat(permission): a sixth rule for the temporary directory
serialexperimentslainnnn Aug 17, 2026
0096806
fix(session): settle an agent when its lifecycle ends it
serialexperimentslainnnn Aug 17, 2026
3056442
refactor(session): one predicate for what belongs here
serialexperimentslainnnn Aug 17, 2026
23402d5
feat(transcript): show the text a tool call sends
serialexperimentslainnnn Aug 17, 2026
896f722
feat(git): read refs, remotes and branch topology
serialexperimentslainnnn Aug 17, 2026
c139166
feat(forge): ask GitHub and GitLab about this branch
serialexperimentslainnnn Aug 17, 2026
1a55258
feat(git): the repository view
serialexperimentslainnnn Aug 17, 2026
2609a61
fix(git): every prompted action talks in the Git chat
serialexperimentslainnnn Aug 17, 2026
67746e7
fix(ui): a closed tab takes its consequences with it
serialexperimentslainnnn Aug 17, 2026
51d14c8
feat(ui): move the chat's own buttons into the chat
serialexperimentslainnnn Aug 17, 2026
f53a2ad
fix(ui): the waiting screens cover only the transcript
serialexperimentslainnnn Aug 17, 2026
e77ae42
fix(composer): the palette sits above the prompt box
serialexperimentslainnnn Aug 17, 2026
aa415b5
refactor(ui): the seams those moves left
serialexperimentslainnnn Aug 17, 2026
99638ed
docs(release): the notes for this release
serialexperimentslainnnn Aug 17, 2026
93bcea8
test(ui): cover the bridge messages the action row added
serialexperimentslainnnn Aug 17, 2026
7af4b30
fix(session): an agent's state is its own, not its parent's
serialexperimentslainnnn Aug 18, 2026
117fed7
feat(session): the model names the chat, and /btw stops being a turn
serialexperimentslainnnn Aug 18, 2026
d39be0a
fix(permission): a regex is not a UNC share
serialexperimentslainnnn Aug 18, 2026
2825625
feat(context): the attach menu browses the project in place
serialexperimentslainnnn Aug 18, 2026
055f424
feat(ui): the composer's gear menu, verified key by key
serialexperimentslainnnn Aug 18, 2026
c5934ec
feat(git): the Git view, its conversation, and the log it asks for
serialexperimentslainnnn Aug 18, 2026
05f3ed7
feat(ui): one tab per session, and a row that can be reached
serialexperimentslainnnn Aug 18, 2026
efeb468
feat(ui): the Workloads diagram draws the strip faithfully
serialexperimentslainnnn Aug 18, 2026
849a3f2
feat(ui): the session strip is one system, on both axes
serialexperimentslainnnn Aug 18, 2026
6b5f88e
docs: sweep the words the release's own changes left behind
serialexperimentslainnnn Aug 18, 2026
573bd7c
fix(ui): the working directory starts in column two, not the last one
serialexperimentslainnnn Aug 18, 2026
79ecf49
feat(ui): the gear menu opens one section at a time
serialexperimentslainnnn Aug 18, 2026
fcd3b13
feat(ui): the subtab rows go as deep as the tree does
serialexperimentslainnnn Aug 18, 2026
d0af48b
fix(ui): the gear's sections were empty, and the resets row is gone
serialexperimentslainnnn Aug 18, 2026
fba1ea8
fix(settings): the gear menu re-reads the safe before you believe it
serialexperimentslainnnn Aug 18, 2026
ed0e915
feat(ui): a user prompt goes through the same parser as Claude's
serialexperimentslainnnn Aug 18, 2026
4ac3084
Merge branch 'main' of github.com:serialexperimentslainnnn/claude-cod…
serialexperimentslainnnn Aug 18, 2026
bd49d90
refactor(security): fold verdict() and reason() into evaluate()
serialexperimentslainnnn Aug 18, 2026
f405d9b
refactor(diff): drop OpenedDiffsService.openCount
serialexperimentslainnnn Aug 18, 2026
ec8e65a
refactor(session): pull PromptComposer out of ClaudeSession
serialexperimentslainnnn Aug 18, 2026
babf2c4
refactor(session): pull SessionTitling out of ClaudeSession
serialexperimentslainnnn Aug 18, 2026
2aa5a14
refactor(session): pull PollSchedule out of ClaudeSession
serialexperimentslainnnn Aug 18, 2026
2ddf767
fix(auth): renew a credential the server rejected, not just the clock
serialexperimentslainnnn Aug 18, 2026
263fd02
perf(permission): cache glob/root normalization; skip redundant pushes
serialexperimentslainnnn Aug 18, 2026
9711a07
refactor(ui): drop the dead requestLogout delegate
serialexperimentslainnnn Aug 18, 2026
2ff2b83
docs(permission): fix stray SensitiveGuard.verdict reference
serialexperimentslainnnn Aug 18, 2026
0487ca5
docs(session): correct the subagent-ending PROJECTMAP claim, regen maps
serialexperimentslainnnn Aug 18, 2026
a7686ee
chore(release): publish a trust chain instead of a bare CI key
serialexperimentslainnnn Aug 18, 2026
04c485e
fix(ci): drop a warning about a Marketplace feature that does not exist
serialexperimentslainnnn Aug 18, 2026
b55fed6
feat(ci): issue the plugin upload certificate from the local PKI
serialexperimentslainnnn Aug 18, 2026
b66dfd2
feat(ci): issue the upload certificate with no question asked
serialexperimentslainnnn Aug 18, 2026
15c6e36
fix(ci): sign the leaf with the CA key that actually exists
serialexperimentslainnnn Aug 18, 2026
d0281af
feat(ci): sign the upload certificate on the YubiKey itself
serialexperimentslainnnn Aug 18, 2026
800decb
feat(ci): anchor the trust chain outside GitHub
serialexperimentslainnnn Aug 18, 2026
c72901c
fix(ci): stop the bootstrap dying without a word before the PIN prompt
serialexperimentslainnnn Aug 18, 2026
afdb86f
docs(ci): the CI key is kept, and the reason it is safe to keep
serialexperimentslainnnn Aug 18, 2026
d3d8db6
fix(ci): issue the upload certificate with the CA key, not the card
serialexperimentslainnnn Aug 18, 2026
e36bda2
docs(ci): stop describing the maintainer's PKI in a public repository
serialexperimentslainnnn Aug 18, 2026
f06c325
fix(ci): report the failure instead of ending the run in silence
serialexperimentslainnnn Aug 18, 2026
d195434
fix(ci): keep the local copy of the issued key, and never abort over it
serialexperimentslainnnn Aug 18, 2026
bf58b9e
feat(permission): govern the guard's rules as a catalogue
serialexperimentslainnnn Aug 18, 2026
1de9f3e
fix(transcript): the user's message is a row, not a card
serialexperimentslainnnn Aug 18, 2026
dbf51c0
fix(session): number a new chat by what is open
serialexperimentslainnnn Aug 18, 2026
f503ba7
fix(ui): stop a tab gesture from failing silently
serialexperimentslainnnn Aug 18, 2026
6a08bdf
chore(git): stop tracking the per-directory project maps
serialexperimentslainnnn Aug 18, 2026
2dc05c6
feat(permission)!: an enforced rule denies, a disabled rule asks
serialexperimentslainnnn Aug 18, 2026
a386438
feat(permission): split the guard rule families into their own files
serialexperimentslainnnn Aug 19, 2026
708b524
Revert "feat(permission)!: an enforced rule denies, a disabled rule a…
serialexperimentslainnnn Aug 19, 2026
4039d18
feat(permission): defensive intrusion detector, location-aware writes
serialexperimentslainnnn Aug 19, 2026
7b85b8b
docs: forbid touching the plugin's security code and its tests
serialexperimentslainnnn Aug 19, 2026
a7c6f65
fix(session): keep reading agent state when the main session is idle
serialexperimentslainnnn Aug 19, 2026
1d48886
fix(session): read agent state from the transcript, not the stream
serialexperimentslainnnn Aug 19, 2026
bc435ba
fix(session): a cancelled or cut-off agent is not still running
serialexperimentslainnnn Aug 19, 2026
36709d3
feat(permission): disable a rule from the block, with an expiry
serialexperimentslainnnn Aug 19, 2026
c4b63f2
fix(webview): the sanitiser must fail closed
serialexperimentslainnnn Aug 19, 2026
934df61
perf(session): parse an agent transcript once per scan
serialexperimentslainnnn Aug 19, 2026
1f11f39
perf(session): skip an agent whose transcript has not changed
serialexperimentslainnnn Aug 19, 2026
f90c10e
refactor(session): reach the sign-in flow without five delegates
serialexperimentslainnnn Aug 19, 2026
90bf2fe
refactor(session): move the live-option verbs into their own subject
serialexperimentslainnnn Aug 19, 2026
2bc6555
refactor(session): move the card answers into their own subject
serialexperimentslainnnn Aug 19, 2026
fe19d1b
fix(permission): a block-comment payload is not a location
serialexperimentslainnnn Aug 19, 2026
4726d6a
refactor: drop the comments from the source
serialexperimentslainnnn Aug 19, 2026
e0d8add
fix(permission): a trailing separator belongs to the path
serialexperimentslainnnn Aug 19, 2026
3e45fd1
fix(permission): a network share needs a host, not two slashes
serialexperimentslainnnn Aug 19, 2026
7f68b13
test(permission): the UNC tests state the new rule, not the old cost
serialexperimentslainnnn Aug 19, 2026
68491c8
fix(ci): give the JVM job a UTF-8 locale
serialexperimentslainnnn Aug 19, 2026
8bdc7a4
fix(ui): the disable-rule menu floats instead of living in the scroller
serialexperimentslainnnn Aug 19, 2026
7c35b36
fix(permission): a redirect target ends at the shell separator
serialexperimentslainnnn Aug 19, 2026
04cb9bb
fix(ui): the disable-rule menu opens in the popup layer
serialexperimentslainnnn Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,13 @@ What actually happened. Include error messages verbatim.

## Environment

> From **5.5.0** the minimum supported IDE is **2025.3 (build 253)**. The whole chat UI is the IDE's
> embedded browser, and the module that provides it does not exist before 253. On 2025.1 or 2025.2 the
> last supported version is **5.1.1** — a bug report against 5.5.0 on those builds is expected behaviour,
> not a defect.

- **OS:** (e.g. Ubuntu 24.04, macOS 14.5, Windows 11 23H2)
- **IDE:** (Help → About → product + build, e.g. `IntelliJ IDEA 2025.1.2 IC-251.23774.435`)
- **IDE:** (Help → About → product + build, e.g. `IntelliJ IDEA 2025.3 IC-253.28294.334`)
- **Plugin version:** (Settings → Plugins → Claude Code Native)
- **`claude` binary version:** output of `claude --version`
- **Binary location:** `which claude` (Linux/macOS) or `where claude` (Windows)
Expand Down
15 changes: 13 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,16 @@ or the permission surface, say what happens to a user who already ran it.
- [ ] Commits follow Conventional Commits (the `commit-msg` hook enforces it —
install once with `git config core.hooksPath .githooks`).
- [ ] `./gradlew test verifyPlugin buildPlugin` passes locally.
- [ ] `verifyPlugin` is **Compatible** across the declared range (251 → 263.\*)
- [ ] `verifyPlugin` is **Compatible** across the declared range (253 → 263.\*)
and reports no new internal-API usage (`@ApiStatus.Internal`).
The CDN download is unreliable here; use
`-PlocalIdePath=<dir>[,<dir>…]` with locally-extracted IDEs.
- [ ] `./gradlew detekt spotlessCheck`, `npm run lint` and `npm run format:check`
pass. These are gated on PRs into `main` only, so a failure otherwise
lands on `develop` and blocks the next release rather than this PR.
- [ ] Renamed a CI job? `.github/rulesets/*.json` names required checks by the
job's **display name** — update them in this PR and re-run
`./scripts/apply-rulesets.sh`, or the gate silently stops applying.
- [ ] No new deprecated or scheduled-for-removal IntelliJ Platform APIs.
- [ ] Tests added or updated for the new behaviour — `src/test/kotlin/…` for
Kotlin, `src/test/frontend/…` (`npm test`) for anything under
Expand All @@ -46,7 +52,12 @@ or the permission surface, say what happens to a user who already ran it.
recorded in [`THIRD-PARTY-NOTICES.md`](../THIRD-PARTY-NOTICES.md) if it
ships in the artifact.
- [ ] User-visible changes are documented in [`CHANGELOG.md`](../CHANGELOG.md)
and [`RELEASE_NOTES.md`](../RELEASE_NOTES.md) under `Unreleased`.
(what changed, for someone debugging) **and**
[`RELEASE_NOTES.md`](../RELEASE_NOTES.md) (why it matters, for someone on
the Marketplace page), under the version being prepared. There is no
`Unreleased` section — `release.yml` publishes the newest `## [x.y.z]`
block of `CHANGELOG.md` verbatim, so a heading that is not a version
would ship as the release notes.
- [ ] No secrets, tokens, conversation transcripts, or personal absolute
paths in the diff or commit messages.
- [ ] Follows the conventions in [`CONTRIBUTING.md`](../CONTRIBUTING.md), the
Expand Down
37 changes: 35 additions & 2 deletions .github/ci-image/jvm-test.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# jvm-test — the CI image for every job that runs Gradle. Built ON TOP of node-test.
#
# WHO USES IT
# `JVM tests`, `Static analysis` and `Plugin verifier` in ci.yml, `CodeQL (java-kotlin)`, the weekly drift
# check, and the release gate in release.yml.
# `JVM tests`, `Static analysis`, `Plugin verifier` and `UI end-to-end tests` in ci.yml, `CodeQL
# (java-kotlin)`, the weekly drift check, and the release gate in release.yml.
#
# WHY IT IS BUILT FROM node-test RATHER THAN FROM fedora
# Two reasons, and the second is the one that matters.
Expand Down Expand Up @@ -88,6 +88,39 @@ RUN curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public \
&& rm -rf /var/cache/dnf \
&& rm -rf /usr/share/locale

# THE DISPLAY STACK, for `UI end-to-end tests` — the one job here that draws.
#
# That job boots a real IDE behind a virtual framebuffer and drives a real Chromium inside it, so it needs
# an X server plus the libraries the JBR and CEF link against. Everything else here is headless Gradle and
# npm, which is why the base image carries none of it.
#
# It is baked rather than installed per run because THE IMAGE IS THIS PIPELINE'S ONLY CACHING MECHANISM: a
# `dnf install` in a workflow step is a network transaction on every execution, and its failure mode is the
# job's worst one — a missing library does not announce itself, the IDE simply never opens its port.
#
# Its own layer, not appended to the JDK transaction above: the two answer to different consumers, and a
# change to either would otherwise invalidate the other's cache. Same manager, same flags and the same
# cache cleanup as that transaction — an image that installs two ways is an image nobody can reason about.
#
# `xorg-x11-server-Xvfb` is what supplies `xvfb-run`; `liberation-fonts` is what stops the IDE drawing
# boxes, which is not cosmetic here — text the harness reads has to be rendered before it can be read.
RUN dnf -y --setopt=install_weak_deps=False --setopt=tsflags=nodocs install \
xorg-x11-server-Xvfb \
gtk3 \
nss \
alsa-lib \
mesa-libgbm \
libxkbcommon-x11 \
libXtst \
libXi \
libXrender \
libXext \
libXrandr \
libXcursor \
liberation-fonts \
&& dnf clean all \
&& rm -rf /var/cache/dnf

# JAVA_HOME is resolved rather than hardcoded: the exact path carries the package's build number and would
# silently break on the next base-image bump. The symlink keeps the ENV below stable across rebuilds.
RUN JH="$(dirname "$(dirname "$(readlink -f "$(command -v javac)")")")" \
Expand Down
30 changes: 30 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,33 @@ updates:
# to match what the targeted IDEs ship, not the newest release. Bumping it blindly is a
# NoSuchMethodError on a user's IDE, not an upgrade.
- dependency-name: 'org.jetbrains.kotlinx:kotlinx-serialization-json'

# The CI images themselves. Every job in ci.yml, codeql.yml, drift.yml and release.yml runs inside
# `ghcr.io/serialexperimentslainnnn/{jvm,node}-test`, built from `.github/ci-image/*.Dockerfile` — so the
# base image of those files is the operating system the whole gate executes on, and until now NOTHING
# proposed a bump for it. `github-actions` does not cover it (it updates `uses:`, not `container:`), and
# neither did the npm or gradle ecosystems. An unwatched base image is the one dependency where "nobody
# changed anything" and "it stopped receiving security patches" are the same sentence.
#
# Dependabot's docker fetcher matches any filename containing `dockerfile` (case-insensitive), so
# `jvm-test.Dockerfile` and `node-test.Dockerfile` are both picked up — but it does NOT recurse, hence the
# explicit directory. It parses one dependency per `FROM`: in practice that is `fedora:44` in
# node-test.Dockerfile, since jvm-test.Dockerfile's `FROM ${NODE_IMAGE}` resolves through an ARG.
- package-ecosystem: docker
directory: /.github/ci-image
schedule:
interval: monthly
open-pull-requests-limit: 2
commit-message:
prefix: build
include: scope
labels: [dependencies, ci]
groups:
security:
applies-to: security-updates
patterns: ['*']
# Deliberately NO `ignore` of majors here, unlike every other ecosystem above. A base image pinned to
# `fedora:44` has no minors and no patches to propose — a major IS the only update that exists, so
# ignoring majors would leave this block doing precisely nothing, which is worse than not having it:
# it would read as coverage. A distro bump is still a human decision; the bot's job is to make sure the
# decision gets put in front of someone instead of being reached by nobody.
Loading
Loading