nyk commited on
Commit
3211a63
·
unverified ·
1 Parent(s): f5be961

fix: docker compose pids location + clear stale update banner

Browse files

- Move pids limit from service-level `pids_limit` to
`deploy.resources.limits.pids` for Compose v5+ compatibility.
Some Compose versions normalize both into the same field, causing
"can't set distinct values" errors.

- Clear OpenClaw update banner when `/api/openclaw/version` reports
`updateAvailable: false`. Previously the banner could persist after
a successful update because only the `true` path was handled.

Closes #353, closes #351

docker-compose.yml CHANGED
@@ -30,12 +30,12 @@ services:
30
  - NET_BIND_SERVICE
31
  security_opt:
32
  - no-new-privileges:true
33
- pids_limit: 256
34
  deploy:
35
  resources:
36
  limits:
37
  memory: 512M
38
  cpus: '1.0'
 
39
  networks:
40
  - mc-net
41
  restart: unless-stopped
 
30
  - NET_BIND_SERVICE
31
  security_opt:
32
  - no-new-privileges:true
 
33
  deploy:
34
  resources:
35
  limits:
36
  memory: 512M
37
  cpus: '1.0'
38
+ pids: 256
39
  networks:
40
  - mc-net
41
  restart: unless-stopped
src/app/[[...panel]]/page.tsx CHANGED
@@ -254,6 +254,8 @@ export default function Home() {
254
  releaseNotes: data.releaseNotes,
255
  updateCommand: data.updateCommand,
256
  })
 
 
257
  }
258
  })
259
  .catch(() => {})
 
254
  releaseNotes: data.releaseNotes,
255
  updateCommand: data.updateCommand,
256
  })
257
+ } else {
258
+ setOpenclawUpdate(null)
259
  }
260
  })
261
  .catch(() => {})
src/lib/__tests__/docker-compose-schema.test.ts CHANGED
@@ -12,13 +12,13 @@ const ROOT = resolve(__dirname, '../../..')
12
  describe('docker-compose.yml schema', () => {
13
  const content = readFileSync(resolve(ROOT, 'docker-compose.yml'), 'utf-8')
14
 
15
- it('uses service-level pids_limit instead of deploy.resources.limits.pids', () => {
16
- // pids_limit should be at service level (not nested inside deploy)
17
- expect(content).toContain('pids_limit:')
 
18
 
19
- // Should NOT have pids inside deploy.resources.limits
20
  const deployBlock = content.match(/deploy:[\s\S]*?(?=\n\s{4}\w|\nvolumes:|\nnetworks:)/)?.[0] ?? ''
21
- expect(deployBlock).not.toContain('pids:')
22
  })
23
 
24
  it('still has memory and cpus in deploy.resources.limits', () => {
 
12
  describe('docker-compose.yml schema', () => {
13
  const content = readFileSync(resolve(ROOT, 'docker-compose.yml'), 'utf-8')
14
 
15
+ it('uses deploy.resources.limits.pids (not service-level pids_limit)', () => {
16
+ // pids limit must be inside deploy.resources.limits for Compose v5+ compatibility.
17
+ // Service-level pids_limit causes "can't set distinct values" errors on some versions.
18
+ expect(content).not.toContain('pids_limit:')
19
 
 
20
  const deployBlock = content.match(/deploy:[\s\S]*?(?=\n\s{4}\w|\nvolumes:|\nnetworks:)/)?.[0] ?? ''
21
+ expect(deployBlock).toContain('pids:')
22
  })
23
 
24
  it('still has memory and cpus in deploy.resources.limits', () => {