Merge branch 'main' into iterion/enable-last-win32-test
This commit is contained in:
		@ -297,7 +297,7 @@ jobs:
 | 
			
		||||
          project_id: ${{ env.GOOGLE_CLOUD_PROJECT_ID }}
 | 
			
		||||
 | 
			
		||||
      - name: Upload release files to public bucket
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.1.3
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.2.0
 | 
			
		||||
        with:
 | 
			
		||||
          path: out
 | 
			
		||||
          glob: 'Zoo*'
 | 
			
		||||
@ -305,7 +305,7 @@ jobs:
 | 
			
		||||
          destination: ${{ env.BUCKET_DIR }}
 | 
			
		||||
 | 
			
		||||
      - name: Upload update endpoint to public bucket
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.1.3
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.2.0
 | 
			
		||||
        with:
 | 
			
		||||
          path: out
 | 
			
		||||
          glob: 'latest*'
 | 
			
		||||
@ -313,7 +313,7 @@ jobs:
 | 
			
		||||
          destination: ${{ env.BUCKET_DIR }} 
 | 
			
		||||
 | 
			
		||||
      - name: Upload download endpoint to public bucket
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.1.3
 | 
			
		||||
        uses: google-github-actions/upload-cloud-storage@v2.2.0
 | 
			
		||||
        with:
 | 
			
		||||
          path: last_download.json
 | 
			
		||||
          destination: ${{ env.BUCKET_DIR }}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							@ -262,7 +262,7 @@ jobs:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-14]
 | 
			
		||||
    timeout-minutes: 30
 | 
			
		||||
    timeout-minutes: 40
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    needs: check-rust-changes
 | 
			
		||||
    steps:
 | 
			
		||||
@ -381,7 +381,7 @@ jobs:
 | 
			
		||||
                    echo "retried=true" >>$GITHUB_OUTPUT
 | 
			
		||||
                    echo "run playwright with last failed tests and retry $retry"
 | 
			
		||||
                    if [[ "$IS_UBUNTU" == "true" ]]; then
 | 
			
		||||
                      xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn playwright test --config=playwright.electron.config.ts --grep=@electron || true
 | 
			
		||||
                      xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn playwright test --config=playwright.electron.config.ts --last-failed --grep=@electron || true
 | 
			
		||||
                    else
 | 
			
		||||
                      yarn playwright test --config=playwright.electron.config.ts --grep=@electron || true
 | 
			
		||||
                    fi
 | 
			
		||||
 | 
			
		||||
@ -27,9 +27,19 @@ test.describe('Code pane and errors', () => {
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
 | 
			
		||||
    // Load the app with the working starter code
 | 
			
		||||
    await page.addInitScript((code) => {
 | 
			
		||||
      localStorage.setItem('persistCode', code)
 | 
			
		||||
    }, bracket)
 | 
			
		||||
    await page.addInitScript(() => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
        'persistCode',
 | 
			
		||||
        `// Extruded Triangle
 | 
			
		||||
const sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> startProfileAt([0, 0], %)
 | 
			
		||||
  |> line([10, 0], %)
 | 
			
		||||
  |> line([-5, 10], %)
 | 
			
		||||
  |> lineTo([profileStartX(%), profileStartY(%)], %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
const extrude001 = extrude(5, sketch001)`
 | 
			
		||||
      )
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    await page.setViewportSize({ width: 1200, height: 500 })
 | 
			
		||||
    await u.waitForAuthSkipAppStart()
 | 
			
		||||
 | 
			
		||||
@ -104,7 +104,7 @@ test(
 | 
			
		||||
            },
 | 
			
		||||
            { timeout: 15_000 }
 | 
			
		||||
          )
 | 
			
		||||
          .toBe(477327)
 | 
			
		||||
          .toBe(477481)
 | 
			
		||||
 | 
			
		||||
        // clean up output.gltf
 | 
			
		||||
        await fsp.rm('output.gltf')
 | 
			
		||||
 | 
			
		||||
@ -173,10 +173,10 @@ test.describe('Can export from electron app', () => {
 | 
			
		||||
          // gray at this pixel means the stream has loaded in the most
 | 
			
		||||
          // user way we can verify it (pixel color)
 | 
			
		||||
          await expect
 | 
			
		||||
            .poll(() => u.getGreatestPixDiff(pointOnModel, [75, 75, 75]), {
 | 
			
		||||
            .poll(() => u.getGreatestPixDiff(pointOnModel, [85, 85, 85]), {
 | 
			
		||||
              timeout: 10_000,
 | 
			
		||||
            })
 | 
			
		||||
            .toBeLessThan(10)
 | 
			
		||||
            .toBeLessThan(15)
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        const exportLocations: Array<Paths> = []
 | 
			
		||||
@ -207,7 +207,7 @@ test.describe('Can export from electron app', () => {
 | 
			
		||||
              },
 | 
			
		||||
              { timeout: 15_000 }
 | 
			
		||||
            )
 | 
			
		||||
            .toBe(477327)
 | 
			
		||||
            .toBe(477481)
 | 
			
		||||
 | 
			
		||||
          // clean up output.gltf
 | 
			
		||||
          await fsp.rm('output.gltf')
 | 
			
		||||
@ -856,10 +856,10 @@ const extrude001 = extrude(200, sketch001)`)
 | 
			
		||||
    // gray at this pixel means the stream has loaded in the most
 | 
			
		||||
    // user way we can verify it (pixel color)
 | 
			
		||||
    await expect
 | 
			
		||||
      .poll(() => u.getGreatestPixDiff(pointOnModel, [132, 132, 132]), {
 | 
			
		||||
      .poll(() => u.getGreatestPixDiff(pointOnModel, [143, 143, 143]), {
 | 
			
		||||
        timeout: 10_000,
 | 
			
		||||
      })
 | 
			
		||||
      .toBeLessThan(10)
 | 
			
		||||
      .toBeLessThan(15)
 | 
			
		||||
 | 
			
		||||
    await expect(async () => {
 | 
			
		||||
      await page.mouse.move(0, 0, { steps: 5 })
 | 
			
		||||
@ -867,8 +867,8 @@ const extrude001 = extrude(200, sketch001)`)
 | 
			
		||||
      await page.mouse.click(pointOnModel.x, pointOnModel.y)
 | 
			
		||||
      // check user can interact with model by checking it turns yellow
 | 
			
		||||
      await expect
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [176, 180, 132]))
 | 
			
		||||
        .toBeLessThan(10)
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [180, 180, 137]))
 | 
			
		||||
        .toBeLessThan(15)
 | 
			
		||||
    }).toPass({ timeout: 40_000, intervals: [1_000] })
 | 
			
		||||
 | 
			
		||||
    await page.getByTestId('app-logo').click()
 | 
			
		||||
@ -956,10 +956,10 @@ test(
 | 
			
		||||
      // gray at this pixel means the stream has loaded in the most
 | 
			
		||||
      // user way we can verify it (pixel color)
 | 
			
		||||
      await expect
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [75, 75, 75]), {
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [85, 85, 85]), {
 | 
			
		||||
          timeout: 10_000,
 | 
			
		||||
        })
 | 
			
		||||
        .toBeLessThan(10)
 | 
			
		||||
        .toBeLessThan(15)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    await test.step('Clicking the logo takes us back to the projects page / home', async () => {
 | 
			
		||||
@ -990,10 +990,10 @@ test(
 | 
			
		||||
      // gray at this pixel means the stream has loaded in the most
 | 
			
		||||
      // user way we can verify it (pixel color)
 | 
			
		||||
      await expect
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [132, 132, 132]), {
 | 
			
		||||
        .poll(() => u.getGreatestPixDiff(pointOnModel, [143, 143, 143]), {
 | 
			
		||||
          timeout: 10_000,
 | 
			
		||||
        })
 | 
			
		||||
        .toBeLessThan(10)
 | 
			
		||||
        .toBeLessThan(15)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    await test.step('Opening the router-template project should load the stream', async () => {
 | 
			
		||||
 | 
			
		||||
@ -358,6 +358,7 @@ const sketch001 = startSketchAt([-0, -0])
 | 
			
		||||
      await page.addInitScript(
 | 
			
		||||
        async ({ code }) => {
 | 
			
		||||
          localStorage.setItem('persistCode', code)
 | 
			
		||||
          ;(window as any).playwrightSkipFilePicker = true
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          code: bracket,
 | 
			
		||||
@ -393,20 +394,22 @@ const sketch001 = startSketchAt([-0, -0])
 | 
			
		||||
      await test.step('The second export is blocked', async () => {
 | 
			
		||||
        // Find the toast.
 | 
			
		||||
        // Look out for the toast message
 | 
			
		||||
        await expect(exportingToastMessage).toBeVisible()
 | 
			
		||||
        await expect(alreadyExportingToastMessage).toBeVisible()
 | 
			
		||||
 | 
			
		||||
        await page.waitForTimeout(1000)
 | 
			
		||||
        await Promise.all([
 | 
			
		||||
          expect(exportingToastMessage.first()).toBeVisible(),
 | 
			
		||||
          expect(alreadyExportingToastMessage).toBeVisible(),
 | 
			
		||||
        ])
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      await test.step('The first export still succeeds', async () => {
 | 
			
		||||
        await expect(exportingToastMessage).not.toBeVisible()
 | 
			
		||||
        await expect(errorToastMessage).not.toBeVisible()
 | 
			
		||||
        await expect(engineErrorToastMessage).not.toBeVisible()
 | 
			
		||||
 | 
			
		||||
        await expect(successToastMessage).toBeVisible()
 | 
			
		||||
 | 
			
		||||
        await expect(alreadyExportingToastMessage).not.toBeVisible()
 | 
			
		||||
        await Promise.all([
 | 
			
		||||
          expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }),
 | 
			
		||||
          expect(errorToastMessage).not.toBeVisible(),
 | 
			
		||||
          expect(engineErrorToastMessage).not.toBeVisible(),
 | 
			
		||||
          expect(successToastMessage).toBeVisible({ timeout: 15_000 }),
 | 
			
		||||
          expect(alreadyExportingToastMessage).not.toBeVisible({
 | 
			
		||||
            timeout: 15_000,
 | 
			
		||||
          }),
 | 
			
		||||
        ])
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@ -419,10 +422,12 @@ const sketch001 = startSketchAt([-0, -0])
 | 
			
		||||
      await expect(exportingToastMessage).toBeVisible()
 | 
			
		||||
 | 
			
		||||
      // Expect it to succeed.
 | 
			
		||||
      await expect(exportingToastMessage).not.toBeVisible()
 | 
			
		||||
      await expect(errorToastMessage).not.toBeVisible()
 | 
			
		||||
      await expect(engineErrorToastMessage).not.toBeVisible()
 | 
			
		||||
      await expect(alreadyExportingToastMessage).not.toBeVisible()
 | 
			
		||||
      await Promise.all([
 | 
			
		||||
        expect(exportingToastMessage).not.toBeVisible(),
 | 
			
		||||
        expect(errorToastMessage).not.toBeVisible(),
 | 
			
		||||
        expect(engineErrorToastMessage).not.toBeVisible(),
 | 
			
		||||
        expect(alreadyExportingToastMessage).not.toBeVisible(),
 | 
			
		||||
      ])
 | 
			
		||||
 | 
			
		||||
      await expect(successToastMessage).toBeVisible()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 31 KiB  | 
@ -773,9 +773,9 @@ const extrude001 = extrude(50, sketch001)
 | 
			
		||||
 | 
			
		||||
    await page.waitForTimeout(1000)
 | 
			
		||||
 | 
			
		||||
    let noHoverColor: [number, number, number] = [82, 82, 82]
 | 
			
		||||
    let hoverColor: [number, number, number] = [116, 116, 116]
 | 
			
		||||
    let selectColor: [number, number, number] = [144, 148, 97]
 | 
			
		||||
    let noHoverColor: [number, number, number] = [92, 92, 92]
 | 
			
		||||
    let hoverColor: [number, number, number] = [127, 127, 127]
 | 
			
		||||
    let selectColor: [number, number, number] = [155, 155, 105]
 | 
			
		||||
 | 
			
		||||
    const extrudeWall = { x: 670, y: 275 }
 | 
			
		||||
    const extrudeText = `line([170.36, -121.61], %, $seg01)`
 | 
			
		||||
@ -787,7 +787,7 @@ const extrude001 = extrude(50, sketch001)
 | 
			
		||||
 | 
			
		||||
    await expect
 | 
			
		||||
      .poll(() => u.getGreatestPixDiff(extrudeWall, noHoverColor))
 | 
			
		||||
      .toBeLessThan(5)
 | 
			
		||||
      .toBeLessThan(15)
 | 
			
		||||
    await page.mouse.move(nothing.x, nothing.y)
 | 
			
		||||
    await page.waitForTimeout(100)
 | 
			
		||||
    await page.mouse.move(extrudeWall.x, extrudeWall.y)
 | 
			
		||||
@ -798,43 +798,43 @@ const extrude001 = extrude(50, sketch001)
 | 
			
		||||
    await page.waitForTimeout(200)
 | 
			
		||||
    await expect(
 | 
			
		||||
      await u.getGreatestPixDiff(extrudeWall, hoverColor)
 | 
			
		||||
    ).toBeLessThan(6)
 | 
			
		||||
    ).toBeLessThan(15)
 | 
			
		||||
    await page.mouse.click(extrudeWall.x, extrudeWall.y)
 | 
			
		||||
    await expect(page.locator('.cm-activeLine')).toHaveText(`|> ${extrudeText}`)
 | 
			
		||||
    await page.waitForTimeout(200)
 | 
			
		||||
    await expect(
 | 
			
		||||
      await u.getGreatestPixDiff(extrudeWall, selectColor)
 | 
			
		||||
    ).toBeLessThan(6)
 | 
			
		||||
    ).toBeLessThan(15)
 | 
			
		||||
    await page.waitForTimeout(1000)
 | 
			
		||||
    // check color stays there, i.e. not overridden (this was a bug previously)
 | 
			
		||||
    await expect(
 | 
			
		||||
      await u.getGreatestPixDiff(extrudeWall, selectColor)
 | 
			
		||||
    ).toBeLessThan(6)
 | 
			
		||||
    ).toBeLessThan(15)
 | 
			
		||||
 | 
			
		||||
    await page.mouse.move(nothing.x, nothing.y)
 | 
			
		||||
    await page.waitForTimeout(300)
 | 
			
		||||
    await expect(page.getByTestId('hover-highlight')).not.toBeVisible()
 | 
			
		||||
 | 
			
		||||
    // because of shading, color is not exact everywhere on the face
 | 
			
		||||
    noHoverColor = [104, 104, 104]
 | 
			
		||||
    hoverColor = [134, 134, 134]
 | 
			
		||||
    selectColor = [158, 162, 110]
 | 
			
		||||
    noHoverColor = [115, 115, 115]
 | 
			
		||||
    hoverColor = [145, 145, 145]
 | 
			
		||||
    selectColor = [168, 168, 120]
 | 
			
		||||
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, noHoverColor)).toBeLessThan(6)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, noHoverColor)).toBeLessThan(15)
 | 
			
		||||
    await page.mouse.move(cap.x, cap.y)
 | 
			
		||||
    await expect(page.getByTestId('hover-highlight').first()).toBeVisible()
 | 
			
		||||
    await expect(page.getByTestId('hover-highlight').first()).toContainText(
 | 
			
		||||
      removeAfterFirstParenthesis(capText)
 | 
			
		||||
    )
 | 
			
		||||
    await page.waitForTimeout(200)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, hoverColor)).toBeLessThan(6)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, hoverColor)).toBeLessThan(15)
 | 
			
		||||
    await page.mouse.click(cap.x, cap.y)
 | 
			
		||||
    await expect(page.locator('.cm-activeLine')).toHaveText(`|> ${capText}`)
 | 
			
		||||
    await page.waitForTimeout(200)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, selectColor)).toBeLessThan(6)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, selectColor)).toBeLessThan(15)
 | 
			
		||||
    await page.waitForTimeout(1000)
 | 
			
		||||
    // check color stays there, i.e. not overridden (this was a bug previously)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, selectColor)).toBeLessThan(6)
 | 
			
		||||
    await expect(await u.getGreatestPixDiff(cap, selectColor)).toBeLessThan(15)
 | 
			
		||||
  })
 | 
			
		||||
  test("Various pipe expressions should and shouldn't allow edit and or extrude", async ({
 | 
			
		||||
    page,
 | 
			
		||||
 | 
			
		||||
@ -66,7 +66,6 @@ import {
 | 
			
		||||
  hasExtrudableGeometry,
 | 
			
		||||
  isSingleCursorInPipe,
 | 
			
		||||
} from 'lang/queryAst'
 | 
			
		||||
import { TEST } from 'env'
 | 
			
		||||
import { exportFromEngine } from 'lib/exportFromEngine'
 | 
			
		||||
import { Models } from '@kittycad/lib/dist/types/src'
 | 
			
		||||
import toast from 'react-hot-toast'
 | 
			
		||||
@ -363,7 +362,7 @@ export const ModelingMachineProvider = ({
 | 
			
		||||
          return {}
 | 
			
		||||
        }),
 | 
			
		||||
        Make: async (_, event) => {
 | 
			
		||||
          if (event.type !== 'Make' || TEST) return
 | 
			
		||||
          if (event.type !== 'Make') return
 | 
			
		||||
          // Check if we already have an export intent.
 | 
			
		||||
          if (engineCommandManager.exportIntent) {
 | 
			
		||||
            toast.error('Already exporting')
 | 
			
		||||
@ -407,7 +406,7 @@ export const ModelingMachineProvider = ({
 | 
			
		||||
          )
 | 
			
		||||
        },
 | 
			
		||||
        'Engine export': async (_, event) => {
 | 
			
		||||
          if (event.type !== 'Export' || TEST) return
 | 
			
		||||
          if (event.type !== 'Export') return
 | 
			
		||||
          if (engineCommandManager.exportIntent) {
 | 
			
		||||
            toast.error('Already exporting')
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
@ -95,8 +95,6 @@ export const wasmUrl = () => {
 | 
			
		||||
      document.location.pathname.split('/').slice(0, -1).join('/') +
 | 
			
		||||
      '/wasm_lib_bg.wasm'
 | 
			
		||||
 | 
			
		||||
  console.log(`Full URL for WASM: ${fullUrl}`)
 | 
			
		||||
 | 
			
		||||
  return fullUrl
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,11 +31,11 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
  |> extrude(width, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(innerEdge)]
 | 
			
		||||
       tags: [getNextAdjacentEdge(innerEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR + thickness,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(outerEdge)]
 | 
			
		||||
       tags: [getNextAdjacentEdge(outerEdge)]
 | 
			
		||||
     }, %)`
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -81,7 +81,6 @@ export class MachineManager {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this._machines = await window.electron.listMachines()
 | 
			
		||||
    console.log('Machines:', this._machines)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private async updateMachineApiIp(): Promise<void> {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							@ -672,7 +672,7 @@ dependencies = [
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "derive-docs"
 | 
			
		||||
version = "0.1.25"
 | 
			
		||||
version = "0.1.26"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "Inflector",
 | 
			
		||||
 "anyhow",
 | 
			
		||||
@ -1345,7 +1345,7 @@ dependencies = [
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "kcl-lib"
 | 
			
		||||
version = "0.2.11"
 | 
			
		||||
version = "0.2.12"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "anyhow",
 | 
			
		||||
 "approx",
 | 
			
		||||
@ -1417,7 +1417,7 @@ dependencies = [
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "kcl-test-server"
 | 
			
		||||
version = "0.1.9"
 | 
			
		||||
version = "0.1.10"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "anyhow",
 | 
			
		||||
 "hyper",
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
[package]
 | 
			
		||||
name = "derive-docs"
 | 
			
		||||
description = "A tool for generating documentation from Rust derive macros"
 | 
			
		||||
version = "0.1.25"
 | 
			
		||||
version = "0.1.26"
 | 
			
		||||
edition = "2021"
 | 
			
		||||
license = "MIT"
 | 
			
		||||
repository = "https://github.com/KittyCAD/modeling-app"
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
[package]
 | 
			
		||||
name = "kcl-test-server"
 | 
			
		||||
description = "A test server for KCL"
 | 
			
		||||
version = "0.1.9"
 | 
			
		||||
version = "0.1.10"
 | 
			
		||||
edition = "2021"
 | 
			
		||||
license = "MIT"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
[package]
 | 
			
		||||
name = "kcl-lib"
 | 
			
		||||
description = "KittyCAD Language implementation and tools"
 | 
			
		||||
version = "0.2.11"
 | 
			
		||||
version = "0.2.12"
 | 
			
		||||
edition = "2021"
 | 
			
		||||
license = "MIT"
 | 
			
		||||
repository = "https://github.com/KittyCAD/modeling-app"
 | 
			
		||||
@ -20,7 +20,7 @@ clap = { version = "4.5.16", default-features = false, optional = true, features
 | 
			
		||||
convert_case = "0.6.0"
 | 
			
		||||
dashmap = "6.0.1"
 | 
			
		||||
databake = { version = "0.1.8", features = ["derive"] }
 | 
			
		||||
derive-docs = { version = "0.1.24", path = "../derive-docs" }
 | 
			
		||||
derive-docs = { version = "0.1.26", path = "../derive-docs" }
 | 
			
		||||
form_urlencoded = "1.2.1"
 | 
			
		||||
futures = { version = "0.3.30" }
 | 
			
		||||
git_rev = "0.1.0"
 | 
			
		||||
 | 
			
		||||
@ -55,10 +55,10 @@ const bracketBody = bs
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: radius,
 | 
			
		||||
       tags: [
 | 
			
		||||
         getNextAdjacentEdge(bs.tags.edge7),
 | 
			
		||||
         getNextAdjacentEdge(bs.tags.edge2),
 | 
			
		||||
         getNextAdjacentEdge(bs.tags.edge3),
 | 
			
		||||
         getNextAdjacentEdge(bs.tags.edge6)
 | 
			
		||||
         getPreviousAdjacentEdge(bs.tags.edge7),
 | 
			
		||||
         getPreviousAdjacentEdge(bs.tags.edge2),
 | 
			
		||||
         getPreviousAdjacentEdge(bs.tags.edge3),
 | 
			
		||||
         getPreviousAdjacentEdge(bs.tags.edge6)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user