Skip to content
Open

Game #276

Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
962d6c6
initialize game engine
quisido Aug 7, 2025
cfaa144
cleanup data structures
quisido Aug 11, 2025
e63321c
update api
quisido Aug 12, 2025
2827dcf
onboard react-reconciler
quisido Aug 25, 2025
a443c28
fill most reconciler props
quisido Aug 31, 2025
0c7ec88
code split reconciler
quisido Sep 2, 2025
363e460
render placeholder image
quisido Sep 2, 2025
ce0fd6e
track FPS
quisido Sep 2, 2025
7be1b35
update configs
quisido Sep 8, 2025
2a8c9fc
updates
quisido Sep 13, 2025
6706d20
setup reducer
quisido Sep 14, 2025
0964fca
separate reducer and reconciler
quisido Sep 24, 2025
b9d2fc3
update drawImage logic
quisido Sep 26, 2025
1378c93
render
quisido Sep 26, 2025
8ebb771
add semi animation
quisido Sep 27, 2025
0e6ab41
pay down tech debt
quisido Oct 1, 2025
499d1ec
update
quisido Oct 2, 2025
b093290
rename game to store
quisido Oct 3, 2025
d820673
fix imports
quisido Oct 3, 2025
58b1dba
update package.json eslint
quisido Oct 4, 2025
3c30b58
eslint fixes
quisido Oct 4, 2025
88a6c09
eslint fixes
quisido Oct 5, 2025
e1af733
eslint fixes
quisido Oct 5, 2025
507a73e
eslint fixes
quisido Oct 5, 2025
cd10ab5
vitest root
quisido Oct 9, 2025
9646a5f
Create PULL_REQUEST_TEMPLATE.md
quisido Oct 15, 2025
bb04aca
add instructions
quisido Oct 15, 2025
1ccd82a
update yaml
quisido Oct 15, 2025
fbb860b
Delete sentry-fullstory-client.ts
quisido Oct 15, 2025
3264829
Update packages/game/src/modules/quisido-browser-game/tuple.ts
quisido Oct 15, 2025
c559c3b
address comments
quisido Oct 20, 2025
3c5b599
add gemini instructions
quisido Oct 21, 2025
6c73c79
update workspace tests
quisido Oct 26, 2025
7e6af17
updates
quisido Nov 2, 2025
ee4d506
Update packages/vite/src/quisido.webmanifest.test.ts
quisido Nov 2, 2025
bf7c5cb
Update packages/vite/src/types/content-security-policy-report-body.ts
quisido Nov 2, 2025
53ba654
fix shell vulnerability
quisido Nov 2, 2025
e00d732
fix tests
quisido Nov 2, 2025
241c456
fix tests 2
quisido Nov 2, 2025
294807f
update vitest
quisido Nov 4, 2025
45f23ea
upgrade
quisido Nov 6, 2025
99344af
try new envs
quisido Nov 6, 2025
3fea169
use `with`
quisido Nov 6, 2025
b5134eb
update vitest config
quisido Nov 6, 2025
28b438a
add some new game assets
quisido Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .aiexclude
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.env.*.local
.env.local
213 changes: 213 additions & 0 deletions .coderabbit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
chat:
art: true
auto_reply: true
integrations:
jira:
usage: disabled
linear:
usage: disabled

code_generation:
docstrings:
language: en-US

knowledge_base:
code_guidelines:
enabled: true
# Common files are included by default, e.g.
# filePatterns:
# - .github/copilot-instructions.md
# - .github/instructions/.instructions.md
# - "**/.clinerules/"
# - "**/.cursorrules"
# - "**/.cursor/rules/"
# - "**/.rules/"
# - "**/.windsurfrules"
# - "**/AGENT.md"
# - "**/AGENTS.md"
# - "**/CLAUDE.md"
# - "**/GEMINI.md"
issues:
scope: auto
jira:
usage: enabled
learnings:
scope: auto
linear:
team_keys:
- ENG
usage: enabled
mcp:
usage: enabled
opt_out: false
pull_requests:
scope: auto
web_search:
enabled: true

language: en-US

reviews:
abort_on_close: true
assess_linked_issues: true
auto_apply_labels: false
auto_assign_reviewers: false
auto_review:
auto_incremental_review: true
drafts: true
enabled: true
ignore_usernames:
- dependabot
changed_files_summary: false
collapse_walkthrough: false
commit_status: false
disable_cache: false
estimate_code_review_effort: true
fail_commit_status: false
finishing_touches:
docstrings:
enabled: true
unit_tests:
enabled: true
high_level_summary: true
high_level_summary_in_walkthrough: true
in_progress_fortune: true
path_filters:
- "**/.*.hintrc"
- "**/.*.json"
- "**/.*.yml"
- "**/.*config"
- "**/.*ignore"
- "**/.*rc"
- "**/.*rc.ts"
- "**/.env"
- "**/.env.*"
- "**/.gitattributes"
- "**/*.code-workspace"
- "**/*.css"
- "**/*.d.ts"
- "**/*.html"
- "**/*.json"
- "**/*.jsonc"
- "**/*.md"
- "**/*.scss"
- "**/*.sql"
- "**/*.ts"
- "**/*.tsx"
- "**/*.txt"
- "**/*.vars"
- "**/*.yml"
- "**/LICENSE"
poem: true
pre_merge_checks:
custom_checks:
- instructions: >
Ensure all new code follows the project's coding standards and best
practices.
mode: warning
name: Code Quality Check
- instructions: >
Check for any security vulnerabilities or sensitive information in the
code.
mode: warning
name: Security Review
description:
mode: warning
docstrings:
mode: warning
threshold: 100
issue_assessment:
mode: warning
title:
mode: warning
requirements: >
Title should be concise and descriptive, ideally under 50 characters
profile: assertive
related_issues: true
related_prs: true
request_changes_workflow: true
review_status: false
sequence_diagrams: true
suggested_labels: false
suggested_reviewers: false
tools:
actionlint:
enabled: true
biome:
enabled: true
brakeman:
enabled: false
buf:
enabled: false
checkmake:
enabled: false
checkov:
enabled: true
circleci:
enabled: false
clippy:
enabled: false
cppcheck:
enabled: false
detekt:
enabled: false
dotenvLint:
enabled: true
eslint:
enabled: true
flake8:
enabled: false
github-checks:
enabled: true
timeout_ms: 900000 # 15 minutes
gitleaks:
enabled: true
golangci-lint:
enabled: false
hadolint:
enabled: true
htmlhint:
enabled: true
languagetool:
enabled: true
enabled_only: false
level: picky # | 'default'
luacheck:
enabled: true
markdownlint:
enabled: true
osvScanner:
enabled: true
oxc:
enabled: true
phpcs:
enabled: false
phpmd:
enabled: false
phpstan:
enabled: false
pmd:
enabled: false
prismaLint:
enabled: false
pylint:
enabled: false
regal:
enabled: false
rubocop:
enabled: false
ruff:
enabled: false
semgrep:
enabled: true
shellcheck:
enabled: true
shopifyThemeCheck:
enabled: false
sqlfluff:
enabled: true
swiftlint:
enabled: false
yamllint:
enabled: true
11 changes: 11 additions & 0 deletions .gemini/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
code_review:
disable: false
max_review_comments: -1
pull_request_opened:
code_review: true
help: true
summary: true

have_fun: true

ignore_patterns: []
17 changes: 17 additions & 0 deletions .gemini/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"mcp": {
"allowed": ["chrome-devtools", "sentry"]
},
"mcpServers": {
"chrome-devtools": {
"args": [
"-y",
"chrome-devtools-mcp@latest"
],
"command": "npx"
},
"sentry": {
"httpUrl": "https://mcp.sentry.dev/mcp"
}
}
}
7 changes: 5 additions & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
github: [quisido]
patreon: [quisido]
# yaml-language-server: $schema=https://www.schemastore.org/github-funding.json
github:
- quisido
patreon: quisido
thanks_dev: u/gh/quisido
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@coderabbitai summary
@sentry review
22 changes: 22 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
applyTo: "**"
---

Apply the
[general coding guidelines](./instructions/general-coding.instructions.md) to
all code.

---
applyTo: "**/*.tsx"
---

Apply the [React coding guidelines](./instructions/react.instructions.md) to all
TSX files.

---
applyTo: "**/*.ts,**/*.tsx"
---

Apply the
[TypeScript coding guidelines](./instructions/typescript.instructions.md) to all
code.
30 changes: 30 additions & 0 deletions .github/instructions/general-coding.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
applyTo: "**"
---
# Project general coding standards

## Naming Conventions
- Use PascalCase for classes, components, enums, interfaces, and type aliases.
- Use camelCase for variables, functions, and methods.
- Do not prefix interfaces with `I` (e.g., use `User` instead of `IUser`).
- Prefer private member variables with # over `private`.
- Use ALL_CAPS for constants
- Use meaningful and descriptive names.
- Avoid abbreviations unless they are widely recognized.
- Third party API calls may keep their original casing; that casing may be
converted to this repository's casing at API call boundaries.
- Use singular nouns for types and interfaces, plural for arrays.
- Use verbs for function and method names.
- Use `on<Event>` for event handler functions (e.g., `onClick`, `onSubmit`).

## Error Handling
- Use `try`/`catch` around `await` at logical boundaries.
- Avoid blanket `try`/`catch` that swallows errors; re-throw or wrap with
domain-specific errors.
- Implement proper error boundaries in React components.
- Always log errors with contextual information.
- Structure logs as JSON.
- Include correlation/request IDs.
- Include non-PII user and session IDs.
- Do not log secrets or PII; apply redaction where needed.
- Standardize log levels as error, warning, or informational.
37 changes: 37 additions & 0 deletions .github/instructions/react.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
applyTo: "**/*.tsx"
---
# Project coding standards for React

- Apply the [general coding guidelines](./general-coding.instructions.md) to all
code.
- Use function components with hooks.
- Follow the React hooks rules (no conditional hooks).
- Keep components small and focused. Prefer ≤200 lines of code per file and ≤3
responsibilities.
- Extract reusable UI into `src/components` and custom hooks into `src/hooks`.
- Use CSS modules with the file name convention `component-name.module.scss`.
- Co-locate styles with the component.
- Prefer className composition over inline styles; allow inline only for
dynamic, computed styles.
- Type props explicitly; avoid `React.FC`. Prefer:

```tsx
import { type ReactElement, type ReactNode } from 'react';

interface Props {
readonly children: ReactNode;
}

export default function Component({ children }: Props): ReactElement {
// ...
}
```

- Use the `type` qualifier when importing types.
- Destructure props in the function signature.
- Use `ReactElement` as the return type for components that return JSX.
- Prefer default exports for components (with explicit function names).
- Always provide stable keys in lists. Avoid using array indices as keys.
- Avoid `setState`/`useState` updates based on stale closures. Prefer functional
updates when derived from previous state.
12 changes: 12 additions & 0 deletions .github/instructions/typescript.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
applyTo: "**/*.ts,**/*.tsx"
---
# Project coding standards for TypeScript

- Apply the [general coding guidelines](./general-coding.instructions.md) to all
code.
- Use TypeScript for all new code
- Follow functional programming principles where possible
- Use interfaces for data structures and type definitions
- Prefer immutable data (`const`, `readonly`)
- Use optional chaining (`?.`) and nullish coalescing (`??`) operators
Loading
Loading