Commit Graph
23214 Commits
Author SHA1 Message Date
Magnus Jensen 6a9d394e62 Implement clear passcode backend (#43072)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42368 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information. For the overall story

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [x] Timeouts are implemented and retries are limited to avoid infinite
loops
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2026-04-07 15:23:59 -05:00
Magnus Jensen 3371b48373 accept 89 error on RemoveProfile as valid (#43172)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42103 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [x] Timeouts are implemented and retries are limited to avoid infinite
loops
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved profile removal handling: Fleet now successfully removes host
OS setting entries even when the removal command encounters a "profile
not found" error from the device.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 15:23:37 -05:00
Allen Houchins 82b6614b2b Re-add Zoom patch policies (#43175) 2026-04-07 15:22:54 -05:00
Allen Houchins a62f318d2e Re-add Zoom FMAs (#43173) 2026-04-07 15:09:02 -05:00
RachelElysia ee207d79af Fleet UI: Fix software table bookmarkability for pages (#43166) 2026-04-07 15:59:48 -04:00
Jonathan Katz 856830b7ca Delete unnecessary patch policies in batch set software installers (#43112)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42991 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [x] QA'd all new/changed functionality manually
2026-04-07 15:58:29 -04:00
Allen Houchins e8de86be83 Disable Zoom FMA and related labels/policies (#43169)
Comment out Zoom Fleet Maintained App entries and associated labels and
patch policies until Zoom FMA is present in Fleet. Files updated:
workstations.yml (zoom/darwin and zoom/windows software entries
commented), labels/* (macOS and x86 Windows Zoom labels commented), and
macOS/Windows patch policy files (Zoom patch policies disabled via
comments). This prevents Fleet from referencing or enforcing Zoom
policies while the FMA is not available.
2026-04-07 14:51:17 -05:00
Allen Houchins 1ecbbcee7c Re-enable Zoom patch policies (#43164)
Uncomment Zoom patch policies for macOS and Windows and restore the
supporting dynamic labels.
2026-04-07 14:24:16 -05:00
Eric 0190326740 Website: update code block syntax highlighting styles (#43156)
Closes: https://github.com/fleetdm/fleet/issues/42116 

Changes:
- Updated the syntax highlighting styles on documentation pages
(app-details, query-details, osquery-table-details, vital-details,
command-details, script-details, and policy-details)
- Added support and styles for syntax highlighting on article pages.
2026-04-07 14:16:25 -05:00
Marko Lisica f7293042b3 Update X509 description for CA certificate (#43122)
I learned that it doesn't matter if the client certificate is signed by
a root CA certificate specified under `Certificates[0].X509` when `Type`
is `Authority`.

In the case of `customer-pingali`, they have a client certificate signed
by a different CA, which confused their IT team. They initially used the
root CA that signed the client certificate and assumed that the same
certificate also signed the server certificate.
2026-04-07 14:54:31 -04:00
Noah Talerman 4b53b51d72 Improve 'Activities run as listed' tooltip wording (#42929)
- @noahtalerman: Feedback from `cisneros` that it's not clear that Fleet
retries 3 times for software and scripts.

For the following quick win:
- https://github.com/fleetdm/fleet/issues/41107
2026-04-07 14:48:03 -04:00
Allen Houchins baa73f8208 Comment out Zoom FMA labels and patch policies (#43157)
Temporarily disable Zoom-related Fleet Maintained App (FMA) labels and
patch policies across macOS and Windows while the FMA installer issue is
resolved in gitops (SQL returned no rows). Commented out the Zoom label
entries in lib/all/labels/*-with-fleet-maintained-apps-installed.yml and
the corresponding Zoom patch policies in
it-and-security/lib/macos/policies/patch-fleet-maintained-apps.yml and
it-and-security/lib/windows/policies/patch-fleet-maintained-apps.yml,
with comments noting to uncomment them together when re-enabling.
2026-04-07 13:42:45 -05:00
RachelElysia 62a3316fe8 Fleet UI: Fix page oscillation (#43151) 2026-04-07 14:31:07 -04:00
Allen Houchins ad9892d27c Switch Zoom to Fleet-maintained app version and patch policy (#43149)
Remove local Zoom software manifests and icon and replace them with
fleet-maintained app slugs. Workstations fleet now references
zoom/darwin and zoom/windows slugs; added dynamic labels for Macs and
x86 Windows hosts with Zoom installed. Patch policies for macOS and
Windows updated to include Zoom using the new slugs so patch
checks/notifications are centralized. Deleted legacy
it-and-security/lib/*/software/zoom.yml and the Zoom icon to avoid
duplicate/local package definitions.
2026-04-07 13:03:14 -05:00
fleet-releaseandallenhouchins bf304154c5 Update Fleet-maintained apps (#43146)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-07 13:00:51 -05:00
Allen Houchins cd487f8d2f Disable locking of end-user info in macOS setup (#43147)
Add lock_end_user_info: false to it-and-security/fleets/workstations.yml
under macos_setup so end-user information is not locked during macOS
enrollment. This allows end users to view or edit their info while
end-user authentication remains enabled.
2026-04-07 12:52:35 -05:00
fleet-releaseandnoahtalerman 6c2ada7f6a Update Fleet-maintained apps (#43133)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: noahtalerman <47070608+noahtalerman@users.noreply.github.com>
2026-04-07 12:43:43 -05:00
Allen Houchins 39d4ceb347 Add cherry-pick kilocode skill (#42660)
## Summary
- Adds a new kilocode skill for cherry-picking PRs onto release
candidate branches
- Codifies the single-session constraint to prevent duplicate PRs
- Documents branch naming, commit message format, and common issues

## Test plan
- [ ] Verify the skill is picked up by Kilo when prompted with a
cherry-pick task
- [ ] Confirm the documented steps match the existing cherry-pick
workflow
2026-04-07 12:28:56 -05:00
Ian Littman f60903cea9 Don't turn Prometheus on in --dev mode (#43129)
# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [ ] QA'd all new/changed functionality manually
2026-04-07 12:01:26 -05:00
johnjeremiah 2b932b9926 Add SE to the attribution framework (#43139)
This ads speaking engagement to the framework
2026-04-07 11:58:46 -05:00
Irena Reedy 4ce90e3514 Update marketing.rituals.yml (#43100)
Quarterly ritual for momentumising new customers
2026-04-07 11:51:53 -05:00
Nico dc18192b60 Add cherry-pick skill (#43111)
Usage:
- `/cherry-pick 43082`: auto-picks the latest RC branch
- `/cherry-pick 43082 rc-minor-fleet-v4.84.0`: targets a specific RC
branch

Sample PR I opened with the skill:
https://github.com/fleetdm/fleet/pull/43110
2026-04-07 13:49:12 -03:00
Nico e55e316d04 Fix Reports nav underline (#43137)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43125

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually

<img width="2116" height="553" alt="Screenshot 2026-04-07 at 1 38 06 PM"
src="https://github.com/user-attachments/assets/62b58312-9fed-4a59-bc0b-bdf0aeaf8e3a"
/>
2026-04-07 13:46:30 -03:00
Scott Gress 2790ba984e Update VSCode Typescript version setting (#43131)
This PR updates VSCode settings to use Fleet's installed version of
Typescript (v4.7.4) for its language server (linting, autocomplete,
etc.) instead of what's built in to VSCode (v6.0.2). As the two can
drift, we end up with VSCode incorrectly highlighting certain syntax as
incorrect.
2026-04-07 11:27:10 -05:00
Victor Lyuboslavsky 4457459422 Wait for CERT_INSTALL delegation to be available before attempting certificate enrollment (#43065)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43064 

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Certificate enrollment now verifies system delegation availability
before attempting installation, preventing unnecessary failures.

* **Bug Fixes**
* Enhanced error messages to include specific certificate alias and
delegation status information for better troubleshooting.
* Improved handling of system state exceptions during the enrollment
process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 11:16:02 -05:00
Noah Talerman 65f1448d6f Fleet-maintained apps: Rename "Firefox" to "Mozilla Firefox" (#43095)
To be consistent w/ macOS:
https://github.com/fleetdm/fleet/blob/3a6ecb5a11fdbdf290faf7fdd7ffa6b29335892f/ee/maintained-apps/inputs/homebrew/firefox.json#L2
2026-04-07 12:13:10 -04:00
Carlo a8dae187f9 Update handbook incident response sections (#43049) 2026-04-07 10:26:54 -05:00
Eric 5652731f89 Website: Update logging in VPP proxy endpoint (#43124)
Changes:
- Updated the get-vpp-app-metadata endpoint to log all errors returned
by the Apple API
2026-04-07 10:26:38 -05:00
Allen Houchins 0989fe084a Consolidate department labels into departments.yml (#43121)
Replace individual department-*.yml label files with a single
lib/all/labels/departments.yml and update it-and-security/default.yml to
reference the consolidated file. Removes the separate department files
and moves their label entries into departments.yml; behavior and label
criteria are unchanged — this is a refactor to reduce file clutter and
simplify label management.
2026-04-07 10:10:13 -05:00
Allen Houchins ce91bfb19e Add Claude to iOS and Android (#43118) 2026-04-07 10:06:35 -05:00
Allen Houchins 00537ff370 Use Fleet-maintained Firefox and remove legacy files (#43119)
Migrate Firefox management to the fleet-maintained app slug
(firefox/darwin): update workstations.yml to remove the old update
policy and replace the macOS software entry with the firefox/darwin
slug; add a dynamic label for Macs with Firefox installed; add a patch
policy that targets the fleet_maintained_app_slug and uses the new
label. Also remove legacy update policy and package files for Firefox
(macOS and Windows) and the hardcoded Firefox pkg URL. This consolidates
Firefox management under Fleet-maintained apps and removes
duplicated/obsolete artifacts.
2026-04-07 10:01:42 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 78d12190b3 Remove YubiKey references from onboarding handbook pages (#43104)
## Summary

- Removes YubiKey/Yubikey mentions from onboarding-related handbook
pages
- Security policy pages (`handbook/it/security.md`) are intentionally
**not** modified

## Changes

### `handbook/it/README.md`
- Removed "and YubiKey security keys" from the equipment provisioning
intro
- Removed the bullet item to order YubiKey 5C NFC keys for new team
members
- Removed "and include Yubikeys (if requested)" from the shipping
checklist

### `handbook/company/leadership.md`
- Removed "do NOT receive Yubikeys" from the consultant distinction list
(no longer relevant since YubiKeys are not part of onboarding)
- Removed "and Yubikeys" from the core team member hiring description

### `handbook/company/communications.md`
- Removed "YubiKey security keys," from the tools & equipment overview

---

Built for [Isabell
Reedy](https://fleetdm.slack.com/archives/D0AEGJCGJR0/p1775558324267559?thread_ts=1775484858.521199&cid=D0AEGJCGJR0)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-04-07 09:43:59 -05:00
Magnus Jensen 0d723adf4c more done to close frontend pieces (#43113)
Follow up PR from QA'ing https://github.com/fleetdm/fleet/issues/41756
2026-04-07 09:41:52 -05:00
Juan Fernandez 3df6449426 API endpoints initial models (#42881)
**Related issue:** Resolves #42881

- Added user_api_endpoints table to track per user API endpoint
permissions.
- Added service/api_endpoints, used to handle service/api_endpoints.yml
artifact.
- Added check on server start that makes sure that
service/apin_endpoints.yml is a subset of router routes.
2026-04-07 10:40:39 -04:00
fleet-releaseandmostlikelee 07df99daa7 Update Fleet-maintained apps (#43117)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-07 09:40:29 -05:00
Lucas Manuel Rodriguez 305886fe86 Move policy request and response types to server/fleet/ package (#43068)
For #36087

## Testing

- [x] QA'd all new/changed functionality manually
2026-04-07 11:04:08 -03:00
Lucas Manuel Rodriguez 013c09721a Update changelog for fleetd 1.54.0 release (#43108) 2026-04-07 10:40:22 -03:00
Nico f465f47bbf Fix: Policies page: Browser back button doesn't work as expected (#43082)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36643

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually
2026-04-07 09:51:35 -03:00
Gabriel HernandezandMagnus Jensen 4f9c908102 clear enrollment from migration status on host when it is a new enrollment (#42553)
**Related issue:** Resolves #40076

This clears out the enrollment from migration status from the
`nano_enrollment` table if the device is going through a fresh
enrollment (aka not from an mdm migration)

# Checklist for submitter

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] Added/updated automated tests
- [ ] QA'd all new/changed functionality manually

---------

Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-04-07 07:44:52 -05:00
github-actions[bot]andlucasmrod 06b5f56870 Update versions of fleetd components in Fleet's TUF [automated] (#43107)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2026-04-07 09:12:59 -03:00
Lucas Manuel Rodriguez df5b1ce78a Fix UserMenu.tsx for multi-team user (#43059)
Resolves #42979

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [X] QA'd all new/changed functionality manually

Tested UI flow described in issue with:
- Global admin.
- Global maintainer.
- Team admin of one team.
- Team admin of two teams (where bug manifests).
- Team maintainer of two teams.
- Team admin of one team, maintainer of another team.
- Team admin of one team, technician of another team.
2026-04-07 08:13:18 -03:00
fleet-releaseandallenhouchins ce5ba8aed2 Update Fleet-maintained apps (#43101)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-06 21:16:56 -05:00
Allen Houchins 6c82a29709 Support for Slack MSIX installer and scripts in Fleet-maintained app catalog (#43060)
This pull request transitions the Windows Slack package from an
MSI-based installer to an MSIX-based installer, updating the ingestion
logic, install/uninstall scripts, and package metadata to support the
new format. It also updates the Slack version and the associated
detection queries to match the MSIX deployment. The most important
changes are:

**Slack Package Migration to MSIX:**

* Changed the Slack package definition in `slack.json` to use
`installer_type: msix`, set the installer scope to `user`, and
referenced new install/uninstall scripts tailored for MSIX.
* Updated the output package version to `4.49.81`, switched the
installer URL to the MSIX package, and adjusted detection queries to
match the new MSIX app name and publisher.

**Installer/Uninstaller Script Updates:**

* Added a new PowerShell install script (`slack_install.ps1`) that
provisions the MSIX package machine-wide and registers it for the
current user to improve inventory visibility.
* Added a new PowerShell uninstall script (`slack_uninstall.ps1`) that
removes both provisioned and per-user MSIX installations, with a timeout
and error handling.

**Ingestion Logic Enhancements:**

* Updated the `wingetIngester` logic to handle MSIX installers by
populating `ProductCode` from `PackageFamilyName` when needed, and to
extract only the prefix for MSI product codes.
* Extended the `installer` struct to include a `PackageFamilyName` field
for MSIX support.
2026-04-06 20:46:51 -05:00
Luke Heath b61d2d0d81 Handbook working group process and AI tools (#43096) 2026-04-06 19:03:01 -05:00
Irena Reedy 91109e2c91 Update fleet-social-proof.md (#43099)
Fixed broken links (we'll try this again lol)
2026-04-06 18:53:07 -05:00
Carlo 86d4162f1d Add team-shared Claude Code configuration (#42793)
## Summary

- Adds a comprehensive `.claude/` configuration that gives every
engineer Fleet-aware AI assistance out of the box — no MCP servers,
plugins, or external dependencies required
- Converts legacy `.claude/commands/` to skills with YAML frontmatter,
adds new skills, agents, rules, and hooks
- Adds ~2,500 tokens at startup; rules, skill bodies, and agent bodies
load on demand

  ## What's included

  **6 rules** (auto-apply by file path):
- Go backend, frontend, database, API endpoints, and Orbit agent
conventions
- Covers: ctxerr errors, banned imports, `fleethttp.NewClient()`,
`new(expression)` over legacy `server/ptr`, bounded contexts
(`server/activity/`, `server/mdm/`), transaction safety (no
`ds.reader`/`ds.writer` inside tx), terminology (fleets/reports), React
Query, BEM, permissions utilities, and more

  **12 skills** (invoke with `/`):
- `/review-pr`, `/fix-ci`, `/test`, `/find-related-tests`, `/lint` —
review and testing workflows
- `/new-endpoint`, `/new-migration`, `/update-data-dictionary` —
scaffolding and maintenance
- `/fleet-gitops`, `/spec-story`, `/project` — planning and
configuration workflows.
- `/project` includes a minimal self-improvement mechanism. Claude adds
discoveries and gotchas to the workstream context as you work, so each
session starts with slightly richer context than the last.

  **3 agents** (specialized reviewers):
- `go-reviewer` (sonnet, proactive) — Go conventions, ctxerr, auth,
testing
- `frontend-reviewer` (sonnet, proactive) — TypeScript, React Query,
BEM, accessibility
- `fleet-security-auditor` (opus, on-demand) — MDM, auth gaps,
injection, PII exposure

  **4 hooks** (automated):
- PreToolUse guard blocking dangerous commands (`rm -rf`, `force push`,
`pipe-to-shell`)
  - PostToolUse goimports on Go files (`**/*.go`)
  - PostToolUse prettier on frontend files (`frontend/**`)
- PostToolUse `lint-on-save`: auto-fixes with `golangci-lint --fix` /
`eslint --fix`, then runs `make lint-go-incremental` and feeds remaining
violations back to Claude as context for self-correction

**Permissions** — pre-approves safe operations (`test`, `lint`, `build`,
`make`, `git` read, `gh` CLI) and blocks dangerous ones (`force push`,
`rm -rf`)

**README** — includes a Claude Code primer for engineers new to the
tool, full reference for all skills/agents/hooks/rules, customization
guide (how to override skills, agents, model, effort), and contributing
instructions

**DATA-DICTIONARY.md** — updated with 13 recent migrations (March 2026)
that were missing

  ## Not covered (future iterations)

  - `android/` (Android app)
  - `website/` (Sails.js marketing site)
  - `ee/fleetd-chrome/` (Chrome extension)
  - `ee/vulnerability-dashboard/` (legacy Sails dashboard)
  - `third_party/` (forked external code)
  - Documentation workflows (guides, API docs, handbook)
- Fleet-maintained apps (FMA catalog, packaging, `ee/maintained-apps/`)
  - MDM-specific conventions beyond the Go backend rule

  ## How to test

  Pull the `.claude/` folder into your working branch without switching:

```bash
  git checkout origin/cc-setup-teamwide -- .claude/
  claude --debug  # start a session and work normally
  git checkout -- .claude/  # revert when done
  git clean -fd .claude/    # remove new files that weren't on your branch
```

Check the debug log at `~/.claude/debug/` for detailed hook and tool
execution traces.

Try `/test` on a recent change, `/lint` go to lint Go files, or ask
Claude to review your code and watch the `go-reviewer` agent kick in.

  ### Test plan

- [x] Start a new Claude Code session in the Fleet project and run
`/context` to verify loading
  - [x] Type `/` and confirm all 12 skills appear
  - [x] Run `/test` on a small package
  - [x] Edit a `.go` file and verify goimports runs automatically
- [x] Edit a `.go` file with a lint violation and verify `lint-on-save`
auto-fixes it
  - [x] Edit a `.tsx` file and verify prettier runs automatically
- [x] Run a command like `echo test` and verify no permission prompt
(allowed by settings)
  - [x] Verify `git diff` runs without prompt
- [x] Ask Claude to review code and check that the `go-reviewer` agent
is invoked
  - [x] Verify skills
- [x] `/update-data-dictionary` correctly updates `DATA-DICTIONARY.md`
- [x] `/spec-story` fetches issue and follows the process defined in the
skill
    - [x] `/project` detects memory directory and runs in a fork
    - [x] `/review-pr` runs in fork, produces detailed review
    - [x] `/lint go` detects changes and runs appropriate linters
    - [x] `/lint frontend` detects changes and runs appropriate linters
    - [x] `/lint full` runs all linters
- [x] `/test` detects changed packages and runs with correct env vars
    - [x] `/test` runs frontend tests when frontend files changed
- [x] `/find-related-tests` outputs correct test files and go test
commands
    - [x] `/fix-ci` with a real failing CI run URL
    - [x] `/fleet-gitops` provides GitOps context and references
    - [x] `/new-endpoint` scaffolds with correct Fleet patterns
- [x] `/new-migration` creates timestamped file + test file with correct
structure
  - [x] Verify hooks
  - [x] Verify agents
  - [x] Verify rules
  
  ### Hooks test results

<img width="792" height="502" alt="Screenshot 2026-04-04 at 10 16 14 AM"
src="https://github.com/user-attachments/assets/ed066f65-1b79-4faa-a06f-3ce50837f055"
/>

<img width="811" height="693" alt="Screenshot 2026-04-06 at 8 49 28 AM"
src="https://github.com/user-attachments/assets/4513423e-d16c-40c1-a8d8-27f38a87acfd"
/>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated internal developer documentation and Claude Code configuration
for improved development workflows, including coding standards, security
guidelines, testing procedures, and automated code review/formatting
setup.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-06 19:48:07 -04:00
Irena Reedy 0822b55257 Irena reedy ritual for printful (#43088) 2026-04-06 18:40:33 -05:00
Phillip Boushy c33e6150df Add note about server private key (#42865)
To deploy certificates, you must have a server private key setup or
GitOps errors with 'Error: applying certificate authorities: POST
/api/latest/fleet/spec/certificate_authorities received status 500
crypto/aes: invalid key size 0: crypto/aes: invalid key size 0'
2026-04-06 19:10:59 -04:00
Ashish Kuthiala eba4fad885 Update customer name references to 'Leading GPU manufacturer' (#43089) 2026-04-06 17:59:26 -05:00
Eric 3a6ecb5a11 Website: add package-lock.json (#43001)
Changes:
- Updated the top-level .gitignore to allow a package-lock.json file in
the website/ folder
- Added website/package-lock.json
2026-04-06 17:45:44 -05:00