Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e86e60e
chore: M1 complete - Kit/dev-sage foundation layer
mindrunner Jan 20, 2026
772c8a2
feat(M2): account state layer for C4
mindrunner Jan 20, 2026
8ee6c88
feat(M3): action layer C4 migration
mindrunner Jan 20, 2026
f4dc211
refactor(M2): complete state layer C4 cleanup
mindrunner Jan 20, 2026
e1539ca
feat(M4): complete FSM layer C4 migration, remove R4 legacy
mindrunner Jan 21, 2026
f2c2fc4
feat(airdrop): restore and migrate airdrop module for C4
mindrunner Jan 21, 2026
c096735
fix(build): remove legacy R4 fleetbot references
mindrunner Jan 21, 2026
46406ec
fix(ci): pass NPM_TOKEN to install action for private registry
mindrunner Jan 21, 2026
8aaad9f
fix(ci): add debug for NPM_TOKEN
mindrunner Jan 21, 2026
2beb0b9
fix(ci): create ~/.npmrc directly instead of env var interpolation
mindrunner Jan 21, 2026
e97c5a0
fix: remove star-atlas-tech from git tracking, add to gitignore
mindrunner Jan 21, 2026
a0d9bb9
fix(lint): exclude contrib/ from eslint
mindrunner Jan 21, 2026
81d02dc
fix(lint): fix prettier formatting
mindrunner Jan 21, 2026
fd33317
fix(lint): prettier format all src files
mindrunner Jan 21, 2026
c5bbcf0
fix(ci): pass NPM_TOKEN to docker build for private packages
mindrunner Jan 21, 2026
296d8f2
fix(docker): remove deleted fleetbot entry from Dockerfile
mindrunner Jan 21, 2026
e2abe4a
fix(coords): convert C4 fixed-point coords to display integers
mindrunner Jan 24, 2026
ed94f0e
chore: wip
mindrunner Jan 24, 2026
959bb1c
fix(c4): graceful error handling and validation for fleet ops
mindrunner Jan 25, 2026
ec55f91
chore: wip
mindrunner Jan 26, 2026
9542333
fix(c4): simulation-based CU, batch deposits, state parsing
mindrunner Jan 26, 2026
176bd6d
fix(lint): prettier + type assertion
mindrunner Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .cursor/rules/reference-code.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
description: Location of fc-app reference code
alwaysApply: true
---

# Reference Code

fc-app / reference code is located in `contrib/star-atlas-tech/`. Use this as reference when implementing features or understanding patterns.
15 changes: 15 additions & 0 deletions .cursor/rules/solana-dev.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
description: Always use solana-dev-skill for Solana development
alwaysApply: true
---

# Solana Development

When working on Solana code, ALWAYS read and follow the solana-dev-skill at `contrib/solana-dev-skill/skill/SKILL.md` FIRST before doing anything else.

Read the progressive disclosure files as needed:
- `frontend-framework-kit.md` - UI + wallet + hooks
- `kit-web3-interop.md` - Kit ↔ web3.js boundary
- `testing.md` - Testing strategy
- `security.md` - Security checklist
- `resources.md` - Reference links
13 changes: 13 additions & 0 deletions .cursor/rules/wait-for-instructions.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
description: Only act on explicit user instructions
alwaysApply: true
---

# Wait for Explicit Instructions

NEVER do anything the user did not explicitly ask for.

- Do NOT proactively make changes
- Do NOT start implementing before getting clear instructions
- Questions ≠ requests to change code
- Always answer questions FIRST, then wait for explicit instruction to act
7 changes: 6 additions & 1 deletion .github/actions/docker-buildx/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ inputs:
cache-strategy:
default: 'registry'
description: 'Cache strategy: gha or registry'
npm-token:
default: ''
description: 'NPM token for private registry access during build'
runs:
using: "composite"
steps:
Expand Down Expand Up @@ -77,4 +80,6 @@ runs:
cache-to: ${{ inputs.cache-enabled == 'true' && (inputs.cache-strategy == 'gha' && 'type=gha,mode=max' || format('type=registry,ref={0}/{1}:cache,mode=max', inputs.repository, inputs.app-name)) || '' }}
build-args: ${{ inputs.build-args }}
ssh: ${{ inputs.ssh-enabled == 'true' && 'default' || '' }}
secrets: ${{ inputs.extra-secrets }}
secrets: |
${{ inputs.extra-secrets }}
${{ inputs.npm-token != '' && format('npmrc=//registry.npmjs.org/:_authToken={0}', inputs.npm-token) || '' }}
12 changes: 12 additions & 0 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
name: 'Install cached modules'
description: 'Run pnpm install with cached modules'

inputs:
npm-token:
description: 'NPM token for private registry'
required: false
default: ''

runs:
using: 'composite'
steps:
Expand Down Expand Up @@ -28,6 +34,12 @@ runs:
restore-keys: |
pnpm-store-

- name: Configure npm auth
shell: bash
if: ${{ inputs.npm-token != '' }}
run: |
echo "//registry.npmjs.org/:_authToken=${{ inputs.npm-token }}" > ~/.npmrc

- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
7 changes: 7 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,26 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install
with:
npm-token: ${{ secrets.NPM_TOKEN }}
- run: pnpm run build

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install
with:
npm-token: ${{ secrets.NPM_TOKEN }}
- run: pnpm run lint

release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install
with:
npm-token: ${{ secrets.NPM_TOKEN }}
- run: pnpm run build
- run: pnpm install --frozen-lockfile --ignore-scripts --prod
- uses: ./.github/actions/docker-buildx
Expand All @@ -36,4 +42,5 @@ jobs:
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub-password: ${{ secrets.DOCKERHUB_TOKEN }}
dockerfile: 'docker/Dockerfile'
npm-token: ${{ secrets.NPM_TOKEN }}

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
/node_modules
.env*
!.env.example
.npmrc
*.iml
dist/

src/main/basedbot/lib/sage/ships.json
package-lock.json
contrib/star-atlas-tech/
1 change: 1 addition & 0 deletions contrib/solana-dev-skill
Submodule solana-dev-skill added at dcc633
1 change: 0 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.s

COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/dist/airdrop/index.js /app/airdrop.js
COPY --from=builder /app/dist/fleetbot/index.js /app/fleetbot.js
COPY --from=builder /app/dist/basedbot/index.js /app/basedbot.js
COPY --from=builder /app/dist/migrate/index.js /app/migrate.js
COPY src/db/db-data-source.ts /app/db/db-data-source.ts
Expand Down
5 changes: 0 additions & 5 deletions docker/bin/fleetbot.sh

This file was deleted.

2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import globals from 'globals'

export default [
{
ignores: ['node_modules/', 'dist/'],
ignores: ['node_modules/', 'dist/', 'contrib/'],
},
{
files: ['src/**/*.ts', 'test/**/*.ts'],
Expand Down
26 changes: 10 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"type": "module",
"scripts": {
"type-check": "tsc --noEmit",
"start:fleetbot": "tsx src/main/fleetbot/index.ts",
"start:basedbot": "tsx src/main/basedbot/index.ts",
"dev:basedbot": "tsx --watch src/main/basedbot/index.ts",
"start:airdrop": "tsx src/main/airdrop/index.ts",
"build": "pnpm run type-check && tsup",
"build:docker": "docker build -t fleetbot -f docker/app/Dockerfile .",
Expand All @@ -30,26 +30,20 @@
},
"homepage": "https://github.com/mindrunner/fleetbot#readme",
"dependencies": {
"@coral-xyz/anchor": "^0.29.0",
"@faker-js/faker": "^9.7.0",
"@sentry/integrations": "^7.114.0",
"@sentry/node": "^9.17.0",
"@sentry/tracing": "^7.120.3",
"@solana/spl-token": "^0.4.13",
"@solana/web3.js": "^1.98.2",
"@staratlas/atlas-prime": "^0.13.1",
"@staratlas/cargo": "^1.1.0",
"@staratlas/claim-stake": "^0.12.0",
"@staratlas/crafting": "^1.1.0",
"@staratlas/data-source": "^0.9.0",
"@staratlas/factory": "^0.7.1",
"@staratlas/player-profile": "^0.11.0",
"@staratlas/points": "^1.1.0",
"@staratlas/profile-faction": "^0.6.0",
"@staratlas/sage": "^1.8.10",
"@solana-program/compute-budget": "^0.9.0",
"@solana-program/system": "^0.9.0",
"@solana-program/token": "^0.9.0",
"@solana/kit": "^5.4.0",
"@solana/webcrypto-ed25519-polyfill": "^5.4.0",
"@staratlas/dev-player-profile": "^0.38.0",
"@staratlas/dev-profile-faction": "^0.38.0",
"@staratlas/dev-sage": "^0.38.0",
"big.js": "^7.0.1",
"bip39": "^3.1.0",
"bn.js": "^5.2.2",
"bs58": "^6.0.0",
"chance": "^1.1.12",
"cron": "^4.3.0",
Expand All @@ -62,6 +56,7 @@
"pretty-error": "^4.0.0",
"punycode": "^2.3.1",
"reflect-metadata": "^0.2.2",
"solana-kite": "^2.1.0",
"superagent": "^10.2.1",
"telegraf": "^4.16.3",
"typeorm": "^0.3.23",
Expand All @@ -70,7 +65,6 @@
},
"devDependencies": {
"@types/big.js": "^6.2.2",
"@types/bn.js": "^5.1.6",
"@types/chance": "^1.1.6",
"@types/module-alias": "^2.0.4",
"@types/node": "^22.15.29",
Expand Down
Loading
Loading