Commit Graph

12 Commits

Author SHA1 Message Date
ddc1dc2751 debug(schematics): add project page download link logging
All checks were successful
Deploy to Docker / deploy (push) Successful in 1m23s
Log all download-related links, schematic file references, and
download path types found on the project page to diagnose 404s.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:18:24 +00:00
d10ceb787b debug(schematics): add HTML logging for download page diagnosis
All checks were successful
Deploy to Docker / deploy (push) Successful in 1m28s
Add debug logging to dump page titles, HTML lengths, and snippets
when the schematic download page is loaded. Also switch to
waitUntil: 'load' and add 3s delay for async JS execution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:12:52 +00:00
7218f06934 fixes
All checks were successful
Deploy to Docker / deploy (push) Successful in 1m23s
2026-03-17 01:58:20 +00:00
a30671c44c fix(schematics): handle PMC download countdown page and ZIP-wrapped schematics
All checks were successful
Deploy to Docker / deploy (push) Successful in 1m21s
The download pipeline was getting HTML instead of the binary file because
PMC's /download/schematic/ returns a countdown confirmation page. Added
downloadSchematic() that uses a full browser flow (project visit → download
page → extract static URL → capture file). Also added ZIP extraction via
adm-zip for schematics wrapped in ZIP archives.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:33:56 +00:00
a739e44ecc fix(schematics): switch from minecraft-schematics.com to Planet Minecraft
All checks were successful
Deploy to Docker / deploy (push) Successful in 1m26s
minecraft-schematics.com has Cloudflare WAF blocking POST requests to
its AJAX search endpoint, making automated search impossible. Switched
to Planet Minecraft which has server-rendered search results and direct
schematic download URLs.

Also added browser stealth settings (custom user-agent, webdriver flag
hiding, AutomationControlled disable) and Cloudflare challenge detection
to all Playwright functions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:04:04 +00:00
a6fa95e3f3 fix(docker): use node:20-slim base image instead of unavailable Playwright image
All checks were successful
Deploy to Docker / deploy (push) Successful in 2m12s
The Playwright Docker image v1.58.2-noble doesn't exist on MCR, breaking
the CI build. Switch to node:20-slim and install Playwright chromium at
build time for resilience against future version mismatches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 00:17:10 +00:00
2e91bcf63d feat(schematics): add schematic search/build with Playwright browser support
Some checks failed
Deploy to Docker / deploy (push) Failing after 33s
Switch Docker base image from node:22-alpine to Playwright Noble for
in-container Chromium support. Add persistent cache volume for schematics.
New files: schematics browser, cache, Java block ID mapping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 00:07:49 +00:00
911471b564 fix(grabcraft): extract model_id fallback for external voxel JS URL
All checks were successful
Deploy to Docker / deploy (push) Successful in 13s
The external myRenderObject script is loaded dynamically, not via a
static <script> tag. Add fallback patterns to extract model_id or
product_id from the page HTML and construct the JS URL from that.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:04:51 +00:00
f9e2b43d2b fix(grabcraft): support external JS files for voxel data extraction
All checks were successful
Deploy to Docker / deploy (push) Successful in 13s
GrabCraft moved myRenderObject data from inline scripts to external JS
files (/js/RenderObject/myRenderObject_XXXX.js). This adds extraction of
the external script URL, fetching and parsing the nested JSON object, with
fallback to the original inline extraction for legacy pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:45:50 +00:00
6a22a5155b feat: add GrabCraft blueprints, building helpers, and world state awareness
All checks were successful
Deploy to Docker / deploy (push) Successful in 12s
- Phase 1: Player position (querytarget @s) and testforblock tools
- Phase 2: GrabCraft scraper with LRU cache, 372-block Java-to-Bedrock
  mapping, search and auto-build blueprint tools with dryRun support
- Phase 3: Raise build limit to 5000 (MAX_BUILD_COMMANDS env), add
  progress notifications and build cancellation
- Phase 4: Geometric shape builders (sphere, cylinder, dome, pyramid,
  wall, box) using fill commands for efficiency
- Phase 5: Event buffer 100->1000 (EVENT_BUFFER_SIZE env), add
  getByTypes and getSince query methods
- Phase 6: MCP resources for block ID reference and GrabCraft categories

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:19:52 +00:00
6ad340ff88 chore(ci): add Gitea Actions deploy workflow
All checks were successful
Deploy to Docker / deploy (push) Successful in 17s
Deploys to 10.0.0.247 via SSH on push to main.
Clones on first run, pulls on subsequent. Builds Docker
image and runs docker compose up.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:38:56 +00:00
146c75b243 feat: initial Minecraft Bedrock AI Bridge MCP server
MCP server that bridges Minecraft Bedrock Edition's WebSocket API
to Claude Code CLI. Exposes 6 tools: minecraft_command, minecraft_chat,
minecraft_build, minecraft_get_events, minecraft_get_status, minecraft_subscribe.

Supports both SSE and Streamable HTTP MCP transports.
Privacy-first: no disk persistence, no telemetry, memory-only event buffer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 16:24:05 +00:00