Skip to content

feat: add full EE Game Structures (x64) support - #42

Merged
4Luke4 merged 1 commit into
mainfrom
feat/ee-game-structures-x64
Aug 24, 2026
Merged

feat: add full EE Game Structures (x64) support#42
4Luke4 merged 1 commit into
mainfrom
feat/ee-game-structures-x64

Conversation

@4Luke4

@4Luke4 4Luke4 commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

This pull request adds full, permission-safe EE Game Structures (x64) layout support and completes the requested repository-maintenance work.

  • ingest every upstream x64 layout table: 1,040 structures and 7,195 fields (8,235 symbols total)
  • retain field names, containing structures, data types, byte offsets, numeric byte sizes, symbolic size expressions, member counts, immutable upstream commits, and exact source lines
  • add structure/member completion, annotation-aware resolution, chained member lookup, hover details, and definition navigation
  • add a daily and manually dispatchable EEex updater that follows the upstream dev revision without hardcoded commit or subtree SHAs
  • bump the extension and all workspace packages to 0.4.0, including the lockfile and changelog

End-user experience

Fields do not pollute global completion. They appear when the receiver can be resolved as an x64 structure:

---@type CGameSprite
local sprite

sprite.                         -- CGameSprite field completion
sprite.m_derivedStats.          -- chained completion for the referenced structure

The same resolution works for ---@param annotations and direct structure-qualified expressions such as CGameSprite.. Qualified pointer types such as const struct CDerivedStats ** are normalized safely for chained lookup.

Completion uses the unqualified member name. Hover and resolved completion documentation display the qualified field, signature, type, offset, numeric or symbolic size, and an immutable source link. Definition navigation targets the exact line in the recorded upstream commit. For example, CGameSprite exposes all 339 parsed layout fields.

“Full” here refers to the complete factual structure layouts and their editor behavior. Permission-gated narrative paragraphs are deliberately not bundled; the UI states that clearly and links to the source.

Automated EEex updates

The Update EEex API data workflow:

  • checks Bubb13/EEex-Docs daily at 04:23 UTC and supports manual dispatch
  • compares the recorded revision with the latest upstream dev commit
  • passes the exact 40-character revision into the generator
  • resolves the repository root tree and relevant source paths dynamically
  • regenerates EE Game Lua Functions, EEex Functions, and EE Game Structures (x64)
  • runs the complete npm run verify gate
  • opens one conventional, reviewable update pull request per upstream revision
  • reads upstream text/data only and never executes upstream code

Generated symbols use commit-pinned, line-level provenance. The package audit rejects count drift, malformed fields, missing layout metadata, duplicate IDs, or permission-gated prose.

Workflow and label audit

The permanent workflows have distinct responsibilities; no redundant build/package workflow remains. CI validates changes, CodeQL performs security analysis, dependency review evaluates manifest changes, release re-verifies the selected release commit before packaging, and the remaining automation handles labeling, maintenance, and EEex data updates.

Only workflows that install npm dependencies use the npm cache. CI, release, and EEex regeneration explicitly key setup-node caching from package-lock.json; metadata-only workflows do not create low-value caches.

The labeler reconciles all labels it consumes from trusted base-branch definitions. Its JavaScript/TypeScript rule now covers .js, .mjs, .cjs, .ts, and .tsx; the four required labels are present on this pull request.

Documentation and release metadata

  • replace illustrative assets with genuine Visual Studio Code Extension Development Host captures
  • place README screenshots inside a collapsed <details> section
  • add latest release, total release downloads, and latest-release downloads badges
  • document generation, provenance, daily updates, and the precise x64 feature behavior
  • add the coordinated v0.4.0 changelog entry

Validation

Final head 5f5dcc273694ee730e4cb117c14d8d3f31f8dc03:

  • History: one Conventional Commit based directly on main
  • CI: passed — compile, lint, Prettier, 18 tests, client/server bundles, and package audit
  • CodeQL: passed; both review findings were fixed and resolved
  • Dependency review: passed
  • Conventional Commits: passed
  • Labels: documentation, dependencies, github_actions, and javascript confirmed
  • Generated x64 data: 1,040 structures + 7,195 fields = 8,235 unique symbols
  • Versioning: root package, every workspace package, lockfile, README, and changelog aligned at 0.4.0

@github-actions github-actions Bot added javascript JavaScript or TypeScript source changes github_actions Changes to GitHub Actions or Dependabot configuration documentation Documentation-only or documentation-affecting changes dependencies Changes to dependency manifests or lockfiles and removed javascript JavaScript or TypeScript source changes github_actions Changes to GitHub Actions or Dependabot configuration labels Aug 24, 2026
@4Luke4 4Luke4 added the javascript JavaScript or TypeScript source changes label Aug 24, 2026 — with ChatGPT Codex Connector
@github-actions github-actions Bot removed the javascript JavaScript or TypeScript source changes label Aug 24, 2026
@4Luke4
4Luke4 marked this pull request as ready for review August 24, 2026 12:05
@4Luke4
4Luke4 marked this pull request as draft August 24, 2026 13:05
Comment thread packages/shared/src/api.ts Fixed
Comment thread packages/shared/src/api.ts Fixed
@4Luke4 4Luke4 added the javascript JavaScript or TypeScript source changes label Aug 24, 2026 — with ChatGPT Codex Connector
@4Luke4 4Luke4 changed the title feat: support EE Game Structures (x64) feat: add full EE Game Structures (x64) support Aug 24, 2026
@4Luke4
4Luke4 marked this pull request as ready for review August 24, 2026 13:44
Ingest the complete factual x64 layout dataset and expose member-aware
completion, hover, definition, annotation, and chained type resolution.

Automate commit-pinned EEex metadata refreshes, harden validation and
repository workflows, reconcile label definitions, replace illustrative
screenshots with verified VS Code captures, and coordinate the v0.4.0
release metadata.

Replace the repetition-based type-normalization expressions identified by
CodeQL with deterministic string scanning for qualifiers and pointers.
@4Luke4
4Luke4 force-pushed the feat/ee-game-structures-x64 branch from 83c82b6 to 5f5dcc2 Compare August 24, 2026 14:52
@github-actions github-actions Bot removed the javascript JavaScript or TypeScript source changes label Aug 24, 2026
@4Luke4
4Luke4 marked this pull request as draft August 24, 2026 14:53
@4Luke4
4Luke4 marked this pull request as ready for review August 24, 2026 14:54
@4Luke4
4Luke4 merged commit a043758 into main Aug 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Changes to dependency manifests or lockfiles documentation Documentation-only or documentation-affecting changes github_actions Changes to GitHub Actions or Dependabot configuration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants