Build Information
Failed to build SwiftDisc, reference v0.12.0 (b7ff58), with Swift 6.2 for Linux on 11 Dec 2025 03:13:51 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/M1tsumi/SwiftDisc.git
Reference: v0.12.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/M1tsumi/SwiftDisc
* tag v0.12.0 -> FETCH_HEAD
HEAD is now at b7ff588 Add role connections, typed permissions, and documentation updates
Cloned https://github.com/M1tsumi/SwiftDisc.git
Revision (git rev-parse @):
b7ff588e1120171b6777d1a10d118845bda2ed10
SUCCESS checkout https://github.com/M1tsumi/SwiftDisc.git at v0.12.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.2
Building package at path: $PWD
https://github.com/M1tsumi/SwiftDisc.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:36dcf51aceebb7518dd97346bbe30fd556b23ffe7a4d72d70473700580e8e541
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.2-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/56] Emitting module SwiftDisc
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
[4/63] Compiling SwiftDisc PipeOpusSource.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[5/63] Compiling SwiftDisc Secretbox.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[6/63] Compiling SwiftDisc VoiceClient.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[7/63] Compiling SwiftDisc VoiceGateway.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[8/63] Compiling SwiftDisc VoiceModels.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[9/63] Compiling SwiftDisc VoiceReceiver.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[10/63] Compiling SwiftDisc VoiceSender.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/host/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[11/63] Compiling SwiftDisc Template.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[12/63] Compiling SwiftDisc Thread.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[13/63] Compiling SwiftDisc User.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[14/63] Compiling SwiftDisc Webhook.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[15/63] Compiling SwiftDisc HTTPClient.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[16/63] Compiling SwiftDisc RateLimiter.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[17/63] Compiling SwiftDisc AudioSource.swift
/host/spi-builder-workspace/Sources/SwiftDisc/REST/HTTPClient.swift:21:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
19 | let config = URLSessionConfiguration.default
20 | #if !os(Windows)
21 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | #endif
23 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
/host/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it [#no-usage]
27 | if remaining <= 0 {
28 | let now = Date()
[18/63] Compiling SwiftDisc Cache.swift
[19/63] Compiling SwiftDisc DiscordConfiguration.swift
[20/63] Compiling SwiftDisc DiscordError.swift
[21/63] Compiling SwiftDisc DiscordUtils.swift
[22/63] Compiling SwiftDisc EventDispatcher.swift
[23/63] Compiling SwiftDisc JSONValue.swift
[24/63] Compiling SwiftDisc AdvancedMessagePayloads.swift
[25/63] Compiling SwiftDisc ApplicationRoleConnection.swift
[26/63] Compiling SwiftDisc GuildBan.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[27/63] Compiling SwiftDisc GuildMember.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[28/63] Compiling SwiftDisc GuildWidgetSettings.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[29/63] Compiling SwiftDisc Interaction.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[30/63] Compiling SwiftDisc Invite.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[31/63] Compiling SwiftDisc Message.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[32/63] Compiling SwiftDisc MessageComponents.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/host/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[33/63] Compiling SwiftDisc PartialGuild.swift
[34/63] Compiling SwiftDisc Role.swift
[35/63] Compiling SwiftDisc ScheduledEvent.swift
[36/63] Compiling SwiftDisc ScheduledEventUser.swift
[37/63] Compiling SwiftDisc Snowflake.swift
[38/63] Compiling SwiftDisc StageInstance.swift
[39/63] Compiling SwiftDisc Sticker.swift
[40/63] Compiling SwiftDisc Attachment.swift
[41/63] Compiling SwiftDisc AuditLog.swift
[42/63] Compiling SwiftDisc AutoModeration.swift
[43/63] Compiling SwiftDisc Channel.swift
[44/63] Compiling SwiftDisc Embed.swift
[45/63] Compiling SwiftDisc Emoji.swift
[46/63] Compiling SwiftDisc Files.swift
[47/63] Compiling SwiftDisc Guild.swift
[48/63] Compiling SwiftDisc ComponentsBuilder.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[49/63] Compiling SwiftDisc Extensions.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[50/63] Compiling SwiftDisc Permissions.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[51/63] Compiling SwiftDisc ShardManager.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[52/63] Compiling SwiftDisc ShardingGatewayManager.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[53/63] Compiling SwiftDisc SlashCommandBuilder.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[54/63] Compiling SwiftDisc SlashCommandRouter.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[55/63] Compiling SwiftDisc Utilities.swift
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/host/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[56/63] Compiling SwiftDisc DiscordClient.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[57/63] Compiling SwiftDisc GatewayClient.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[58/63] Compiling SwiftDisc GatewayModels.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[59/63] Compiling SwiftDisc Intents.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[60/63] Compiling SwiftDisc WebSocket.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[61/63] Compiling SwiftDisc ActivityBuilder.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[62/63] Compiling SwiftDisc AutocompleteRouter.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
[63/63] Compiling SwiftDisc CommandRouter.swift
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
/host/spi-builder-workspace/Sources/SwiftDisc/Gateway/WebSocket.swift:24:16: error: cannot assign to property: 'waitsForConnectivity' is a get-only property
22 | let config = URLSessionConfiguration.default
23 | #if !os(Windows)
24 | config.waitsForConnectivity = true
| `- error: cannot assign to property: 'waitsForConnectivity' is a get-only property
25 | #endif
26 | config.requestCachePolicy = .reloadIgnoringLocalCacheData
BUILD FAILURE 6.2 linux