Compare commits
3 commits
c0f545350c
...
49df66a58a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49df66a58a | ||
|
|
bced45814b | ||
|
|
e3e2e2f57c |
4 changed files with 63 additions and 6 deletions
11
.fragua/config.yaml
Normal file
11
.fragua/config.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# fragua project config — project-specific knobs only.
|
||||||
|
# Generic preferences live in ~/.fragua/config.yaml.
|
||||||
|
|
||||||
|
# Stable project identity. Committed so every clone shares it and runs
|
||||||
|
# stay attributable across machines — do not change it.
|
||||||
|
id: 01a03577-18d7-7f10-bcee-144a07a22c20
|
||||||
|
name: flotilla
|
||||||
|
tier: fork
|
||||||
|
|
||||||
|
# Uncomment if the project needs a per-worktree bootstrap command:
|
||||||
|
# bootstrap: "bun install --frozen-lockfile"
|
||||||
11
.gitignore
vendored
11
.gitignore
vendored
|
|
@ -81,3 +81,14 @@ CLAUDE.md
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
|
||||||
|
# fragua runtime — never commit these
|
||||||
|
.fragua/runs/
|
||||||
|
.fragua/worktrees/
|
||||||
|
.fragua/blobs/
|
||||||
|
.fragua/fragua.db*
|
||||||
|
.fragua/daemon/
|
||||||
|
|
||||||
|
# fragua — always commit these (negative patterns for clarity)
|
||||||
|
!.fragua/config.yaml
|
||||||
|
!.fragua/workflows/
|
||||||
|
|
|
||||||
38
scripts/checks
Executable file
38
scripts/checks
Executable file
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
lint () {
|
||||||
|
echo "::group::lint"
|
||||||
|
pnpm lint
|
||||||
|
echo "::endgroup::"
|
||||||
|
}
|
||||||
|
|
||||||
|
check () {
|
||||||
|
echo "::group::typecheck"
|
||||||
|
pnpm check
|
||||||
|
echo "::endgroup::"
|
||||||
|
}
|
||||||
|
|
||||||
|
build () {
|
||||||
|
echo "::group::build"
|
||||||
|
pnpm build
|
||||||
|
echo "::endgroup::"
|
||||||
|
}
|
||||||
|
|
||||||
|
no_local_overrides () {
|
||||||
|
echo "::group::no-local-overrides"
|
||||||
|
# Make sure no "link:" overrides are committed — those break every other clone
|
||||||
|
if grep -q 'link:' package.json pnpm-workspace.yaml 2>/dev/null; then
|
||||||
|
echo "Some packages are linked to local files!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "::endgroup::"
|
||||||
|
}
|
||||||
|
|
||||||
|
steps="${*:-lint check no_local_overrides build}"
|
||||||
|
|
||||||
|
for step in $steps; do
|
||||||
|
"$step"
|
||||||
|
done
|
||||||
|
|
@ -61,15 +61,12 @@
|
||||||
await Mail.enable()
|
await Mail.enable()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
settings.email = false
|
settings.email = false
|
||||||
|
console.error(e)
|
||||||
await sleep(300)
|
await sleep(300)
|
||||||
return pushToast({
|
return pushToast({
|
||||||
theme: "error",
|
theme: "error",
|
||||||
message: `Failed to enable email notifications.`,
|
message: `Failed to enable email notifications.`,
|
||||||
action: {
|
action: {message: "Details", onclick: () => {}},
|
||||||
message: "Details",
|
|
||||||
onclick: () =>
|
|
||||||
emailNotificationState.set({...emailNotificationState.get(), error: undefined}),
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else if (!settings.email) {
|
} else if (!settings.email) {
|
||||||
|
|
@ -198,7 +195,7 @@
|
||||||
</FieldInline>
|
</FieldInline>
|
||||||
{/if}
|
{/if}
|
||||||
{#if $emailNotificationState.error}
|
{#if $emailNotificationState.error}
|
||||||
<div class="text-sm text-red-500 bg-red-50 rounded-lg p-3">
|
<div class="text-sm text-error p-3">
|
||||||
{$emailNotificationState.error}
|
{$emailNotificationState.error}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue