Pull Requests
- Directory: AD rejoin and OU placement for deployed images (port of #2029, #2030, #2037, #2038) by @mastacontrola in #2042
- FOGUpdater: Beta tracks the newest working-* branch, not working-1.6 by @mastacontrola in #2043
- CLAUDE.md: all work lands on dev-branch; working-1.6 is frozen by @mastacontrola in #2044
- Pin fog-plugins v1.6.28: LDAP columns for a 1.5 table by @mastacontrola in #2045
- Host edit: save the printer level the radio selects by @mastacontrola in #2047
- Directory rejoin: a canceled Deploy is no trigger by @mastacontrola in #2048
- Directory rejoin: no permanent task lockout, and workgroup PCs join by @mastacontrola in #2049
- Installer: fetch plugins on a storage-node install by @mastacontrola in #2050
- Replication: skip an item whose transfer is still running by @mastacontrola in #2051
- Agent enroll: let a pending key's MAC list change by @mastacontrola in #2052
- Agent update: never move a lab build to an older release by @mastacontrola in #2053
- Registration: AD defaults need a FOG login that may create hosts by @mastacontrola in #2054
- Legacy client: send the domain password only to a vouched key by @mastacontrola in #2055
- Dashboard charts: count runs on the right day near the UTC boundary by @mastacontrola in #2056
- Upgrade from 1.5: seed the settings 1.6 inserts below 1.5's step count by @mastacontrola in #2057
- Replication: pass FOG_FTP_PORT to lftp by @mastacontrola in #2059
- Storage node SSH: authenticate with a key, password as fallback by @mastacontrola in #2060
- Installer: keep FOG's NFS exports in /etc/exports.d/fog.exports by @mastacontrola in #2061
- Storage nodes: per-node SSH and FTP ports by @mastacontrola in #2062
- Installer: no password-login warning when FOG's SSH key is usable by @mastacontrola in #2063
- Installer: no signed shim chain under HTTPS netboot with a private CA by @mastacontrola in #2065
- Installer: a first-install mode answer no longer discards a forced --netboot-proto by @mastacontrola in #2066
- Remove the FOGSSH and FOGFTP reuse checks that can never match by @mastacontrola in #2071
- Use minId() for the default storage group on add and save paths by @mastacontrola in #2072
- Fix FOGCron: bad rows, range steps, and Sunday matching by @mastacontrola in #2073
- Repair the rows and key a 1.5 upgrade skips, and gate them in CI by @mastacontrola in #2074
- Installer: move a stale sites-enabled vhost file out of Apache's way by @mastacontrola in #2075
- hostinfo: send the join password and product key only to declared networks by @mastacontrola in #2077
- Software: offer Flatpak and Snap backends to the fog-agent by @mastacontrola in #2079
- Agent self-update: make Latest the default by @mastacontrola in #2078
- Flash messages: survive a session that holds the old string shape by @mastacontrola in #2080
- Installer: name the sbsign --addcert gap instead of a bare Failed by @mastacontrola in #2081
- Storage nodes: balance deploys across a group, and move waiting hosts by @mastacontrola in #2082
- Send the OS family to FOS as osfamily (#2083) by @mastacontrola in #2085
- Pin fog-plugins v1.6.29: Capone sends the OS family by @mastacontrola in #2086
- Printer level: "Not set" follows a server default by @mastacontrola in #2088
- Record legacy client handshake failures and list them in a report by @mastacontrola in #2089
- Reports: Printer Deployment renders as HTML, and three grids load rows by @mastacontrola in #2090
- Task modal: show a failed form fetch's reason instead of hanging by @mastacontrola in #2091
- Keep a Remember Me session past the inactivity timeout by @mastacontrola in #2092
- Stable Release PR For 1.6.0.158 - 2026-11-11 by @fog-workflows[bot] in #2093
Full Changelog: 1.6.0.14...1.6.0.158
Commits
- Add the agent identity check and enrollment feature negotiation (7c4369587)
- Tidy the agent identity check after review (32ad2e2a3)
- Pin the feature header to the handler, and fix the route comment (132479b3c)
- Add schema 447: rejoin config and state on hostDirectory (42e928080)
- Add the rejoin lookups and keep rejoin columns server-owned (613fb3bf8)
- Add directory task, operation and rejoin state without a name fence (2cdac96b8)
- Wire the rejoin operation into the agent poll, start and result routes (985cb3bfa)
- Add the host AD rejoin controls, delete guard and operator clear (9c163cb61)
- Describe the rejoin start route and poll fields in the OpenAPI document (334734c14)
- Test the rejoin operation against a real database (a65b77568)
- Let a featureless poll through and satisfy phpstan (ce97b44d5)
- Review round 1: PHPDoc, OpenAPI result and start, legacy removal, tests (703d857a0)
- Review round 2: fold configureTarget into configure, list all result 409s (dc3290cad)
- Add schema 448: directoryPlacementIntent table (a4f7054eb)
- Record OU placement requests before they are sent (c14bf1b32)
- Store placement intent JSON as ASCII; refuse a GUID Move with no RDN (5cfb867e8)
- Test OU placement intents against a real server (8b5f80267)
- Clear the PHPStan test-pass findings in the placement tests (3c7c78333)
- Let an operator clear a placement request stuck as MAY_HAVE_RUN (31a9b73f8)
- Review round 1: OpenAPI start 409, private prefixes, move-timeout clear window, dedupe (685e987bc)
- Review round 2: hold UNKNOWN behind the clear window, shared review list (0c64e12e7)
- Review round 3: plural-safe clear text, pin the zero-date NULL age (81f44f97b)
- Match the enroll feature handler to the working-1.6 result of the port (1b143c31d)
- FOGUpdater: Beta tracks the newest working-* branch, not working-1.6 (0e2c0c97e)
- Review round 1: reuse newestBranch, restrict and bound the lookup (6459242da)
- Bootstrap: same branch-name charset as newestBranch (821b4a6bb)
- Review round 2: one ls-remote call, a test that sees only exported env (1db804bab)
- Review round 3: pin the origin path, isolate the env checks (05a04e384)
- CLAUDE.md: all work lands on dev-branch; working-1.6 is frozen (80aaa685f)
- Pin fog-plugins v1.6.28: LDAP columns for a 1.5 table (681b4d2d4)
- Host edit: save the printer level the radio selects (#2046) (a1c689c35)
- Regenerate the gettext catalog for the printer level message (cce813fd4)
- Directory rejoin: a cancelled Deploy is no trigger (304359ec2)
- Use the US spelling in the canceled Deploy comment and tests (ef435a76b)
- Directory rejoin: no permanent task lockout, and workgroup PCs join (94df7c4b0)
- Directory rejoin: test the Deploy-triggered join refusal, fix comment wording (91af2c211)
- Installer: fetch plugins on a storage-node install (ba5c7deca)
- Correct two comments that said storage nodes skip the plugin fetch (210d2b5b3)
- Replication: skip an item whose transfer is still running (5058dc9bb)
- Test that replicateItems() skips an item whose transfer is running (662aeeb4c)
- Agent enroll: let a pending key's MAC list change (51cb2cec5)
- Agent update: never move a lab build to an older release (757e739de)
- Registration: AD defaults need a FOG login that may create hosts (6fcd5af29)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2054) (8551dcbc1)
- Legacy client: send the domain password only to a vouched key (86d162d0d)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2055) (130f1d32e)
- Dashboard charts: count runs on the right day near the UTC boundary (eef38dcf0)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2056) (83a4e7a61)
- Upgrade from 1.5: seed the settings 1.6 inserts below 1.5's step count (8f6600b70)
- Replication: pass FOG_FTP_PORT to lftp (8381ff0b3)
- Storage node SSH: authenticate with a key, password as fallback (GH-2058) (016dab9ee)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2060) (fb7832b8c)
- SSH key fetch: keep PHP warnings out of the HMAC, fix stale test counts (6a62bebb2)
- Comments: name _fetchFogSshKey in the TLS test's Group C list (92ec7cce8)
- Installer: keep FOG's NFS exports in /etc/exports.d/fog.exports (65c0ee281)
- Installer: name the exports backup when installing the NFS drop-in fails (5377c44d9)
- Installer: show the exports backup under -X, and never say Moved after a failed strip (442683535)
- Storage nodes: per-node SSH and FTP ports (d74f168dd)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2062) (1b146ebaf)
- Installer: no password-login warning when FOG's SSH key is usable (1c37f5205)
- Installer: tighten the SSH warning's comments and node advice (102923657)
- Installer: no signed shim chain under HTTPS netboot with a private CA (GH-2064) (9dc46598f)
- Installer: claim FOG's builds carry the CA only when they do (GH-2064) (914bd82d3)
- Secure Boot page: say the signed chain cannot serve HTTPS with a private CA (GH-2064) (02ee8cae0)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2065) (98e60ec21)
- DHCP: no shim alternatives in the generated comments under a private CA (GH-2064) (f2793a0be)
- Installer: a first-install mode answer no longer discards a forced --netboot-proto (30e459e3e)
- Net: remove the FOGSSH and FOGFTP reuse checks that can never match (GH-2067) (9a0c80ff1)
- Default storage group: use minId() on the add and save paths (GH-2068) (2cc046a5f)
- FOGCron: a bad row throws instead of stopping scheduling (GH-2070) (221d260d9)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2073) (a7736ef9f)
- Schema: repair the rows and key a 1.5 upgrade skips, and gate them in CI (GH-2069) (062bbc834)
- Installer: move a stale sites-enabled vhost file out of Apache's way (d4c46281e)
- Installer: report a failed move of the stale vhost; tighten wording (23258876b)
- hostinfo: send the join password and product key only to declared networks (156db0fcc)
- Software: offer Flatpak and Snap backends to the fog-agent (86551e7e4)
- Agent self-update: make Latest the default (4d51f5bbc)
- Merge remote-tracking branch 'origin/dev-branch' into feat/agent-update-default-latest-dev (661d349fe)
- Software: test the wire token by behavior, not by a constant compare (3de826902)
- Flash messages: survive a session that holds the old string shape (c9882b679)
- Installer: name the sbsign --addcert gap instead of a bare Failed (a526f30e7)
- Storage nodes: balance deploys across a group, and move waiting hosts (92e8ea338)
- Send the OS family to FOS as osfamily (#2083) (d99a2dfed)
- Pin fog-plugins v1.6.29 (8146e5bcc)
- Printer level: "Not set" follows a server default (197027c7a)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2088) (0635e1c1d)
- Record legacy client handshake failures and list them in a report (6b2ce1a26)
- Fix phpstan: mode() takes the resolved level (290081872)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2089) (d059789c0)
- Refuse an empty code in Host::recordAuthFailure() (ad6270a96)
- Say what a 'dec' failure means: the server's own certificate (b391afec4)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2089) (ca4d82323)
- Advise --recreate-keys for a 'dec' failure, not a plain re-run (3d0980ef6)
- Generated Files Sync: regenerate translations and PSR2 formatting (#2089) (a73f5fe78)
- Client auth failures: add the host export columns and fix the save pin (ea54aa544)
- Merge dev-branch; move the client auth failure step to schema 460 (b35e51c25)
- Reports: Printer Deployment renders as HTML, and three grids load rows (b7873be06)
- Review fixes: default type in a helper, and the gate pins columns (93655ee11)
- Report gate: a column entityLink() builds may render raw (320197620)
- Task modal: show a failed form fetch's reason instead of hanging (0c9cd9af3)
- Keep a Remember Me session past the inactivity timeout (d18088aed)
- Inline the test's row builder; note the regenerate branch's cookie reads (b4295d45f)
Closed Issues Since Last Release
- Let a group grant a printer management level, like it grants printers (#2087)
- Store an OS family per OS row and send it to FOS as osfamily (#2083)
- Fix FOGCron: bad rows, range steps, and Sunday matching (#2070)
- Repair the rows and key a 1.5 upgrade skips, and gate them in CI (#2069)
- Use minId() for the default storage group on add and save paths (#2068)
- Remove the FOGSSH and FOGFTP reuse checks that can never match (#2067)
- HTTPS netboot with a private CA hands UEFI clients the signed shim chain, which cannot fetch boot.php (#2064)
- Storage node SSH: support key authentication (#2058)
- Host edit page: printer management level is always saved as empty (#2046)