Skip to content

sync(upstream): evaluate 16 opentibiabr commits - #26

Merged
blakinio merged 35 commits into
mainfrom
sync/OTC-20260725-opentibiabr-16-commits
Jul 25, 2026
Merged

sync(upstream): evaluate 16 opentibiabr commits#26
blakinio merged 35 commits into
mainfrom
sync/OTC-20260725-opentibiabr-16-commits

Conversation

@blakinio

@blakinio blakinio commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Purpose

Synchronize the reviewed net effects from the exact 16 commits by which opentibiabr/otclient:main was ahead of the recorded common ancestor, while preserving all fork-only Oteryn, test and security behavior.

Task and ownership

  • Task: OTC-20260725-upstream-sync-16
  • Task record: docs/agents/tasks/active/OTC-20260725-upstream-sync-16.md
  • Current main: 85bfac8825607a73b475f1267cb3a798da1e717d
  • Exact final candidate head: 4f9958c5b834e911e06ffb5e10f1193400f545e7

Safety

  • the head branch and all writes exist only in blakinio/otclient; no external repository was modified
  • Oteryn Identity, no-password fallback, one-shot session protections, shell-safe URL launching and the test foundation remain present
  • open PR feat(ui): prototype Oteryn login shell #23 enter-game presentation paths are not changed
  • no proprietary assets are introduced

Upstream baseline

  • merge base at task start: bdea0b23b4a738809d698cb7e4f88a299dd6bffc
  • reviewed upstream head: 465b7a217e87502bb7f9980bf6e099718d0a9a49
  • exact reviewed upstream-only commit count: 16
  • original local synchronization merge: 7bcf57bb3eae419db8ac462d7053ce5cd43e264e
  • prior reviewed code head: f89b0299cad683045f809d7fafd969f376fb00bc
  • first exact-head validation: c9dba184328250b3550386565e3d15bf8f73ea49, CI run 30173862455, success
  • base-refresh merge: 4f9958c5b834e911e06ffb5e10f1193400f545e7 merges the unchanged reviewed tree into current main

Repository policy permits squash merge only. The exact upstream head and per-commit disposition remain the durable synchronization baseline.

Reviewed content retained

  • NPC trade imbuement quantities and layout, with local terminate/logout cleanup
  • Stats pause/resume and manual-walk/bot helpers
  • animated outfit/mount phase fixes
  • --user-dir, pre-780 use-with and ground-border targeting
  • bounded unknown-opcode recovery
  • browser/WASM and Cocoa input fixes retained as source-only upstream synchronization effects; no dormant-platform support claim is made

Local safety adaptations

Three upstream effects are excluded from the final net diff until they satisfy this repository's gates:

  1. src/framework/core/graphicalapplication.cpp remains at the fork version because the upstream change imports client/game.h into src/framework/core, reversing the required framework → client dependency direction. The rendering change may be reimplemented later through ApplicationDrawEvents in a focused PR.
  2. modules/game_rewardwall/game_rewardwall.lua remains at the fork version because the changed SelectReward source byte is payload-dependent behavior without an exact Canary producer commit, shared OTS-* contract, compatibility matrix and paired tests. It remains deferred fail-closed.
  3. modules/client_assets/client_assets.lua remains at the fork version because the mandatory asset-installer gate requires release-metadata fixtures plus explicit install-path and runtime-load evidence. The archive-selection fix remains scheduled as a focused high-priority task rather than being accepted without that proof.

The NPC trade integration also restores imbuement-tracker state during module termination and game-session end, not only when the NPC window emits its close events.

Existing regression coverage reused

The unknown-opcode fix relies on the existing InputMessage unit contracts that already prove both required facts: body size is independent of the reserved header cursor offset, and skipping the remaining unread body reaches EOF. No redundant second copy of that test is added.

Durable documentation

  • docs/agents/MODULE_CATALOG.md records g_stats.pause/resume, --user-dir, TargetBot.Danger() and lastManualWalk.
  • docs/agents/CHANGELOG.md records the retained synchronization behavior and the three explicitly deferred effects.
  • the dedicated active task records ownership, validation boundaries, rollback and handoff.

Final diff review

The authoritative 85bfac8...4f9958c comparison contains the same 31 net changed files: the reviewed 30-file synchronization diff plus one task record. The base-refresh commit adds no new feature delta.

Runtime confidence boundary

The original synchronization head 7bcf57b has historical full cross-platform compile evidence. Exact head c9dba184... passed the current Windows-only CI matrix. The refreshed exact head 4f9958c5... must pass the same required gate before merge. No claim is made that NPC presentation, old-protocol use-with, mount animation, ground-border targeting or Cocoa input received fresh interactive runtime verification in this environment.

Validation gate

All required checks must pass on exact head 4f9958c5b834e911e06ffb5e10f1193400f545e7.

Merge method

Squash merge, as required by current repository settings and AGENTS.md. The squash message must record upstream head 465b7a217e87502bb7f9980bf6e099718d0a9a49, the exact 16-commit reviewed range and the three excluded effects.

mimus-assa and others added 17 commits July 18, 2026 16:22
…pentibiabr#1747)

Bug Fixes:
- Mouse movement input now reports the correct movement delta when the cursor moves, improving responsiveness and accuracy for pointer-based interactions.
…entibiabr#1748)

Bug Fixes:
- Improved daily reward collection behavior so shrine rewards are handled correctly.
- Shrine-based rewards now collect immediately for free and return users to the reward wall UI.
- Non-shrine reward confirmations now send the proper reward flag, preventing incorrect reward requests.
…iabr#1749)

Bug Fixes:
- Improved stability and consistency in wheel, gem, workshop, and action selection flows.
- Fixed UI behavior so graph-related controls are now available in all supported builds.
- Updated glow rendering to work reliably across more graphics environments.
…tiUseThing (opentibiabr#1750)

Bug Fixes:
- Adjusted tile interaction behavior so certain items on a tile can now be selected more consistently.
- Improved the fallback selection logic to better recognize eligible multi-use objects, including some items that were previously skipped.
…raybuffer) (opentibiabr#1751)

Bug Fixes:
- Updated the browser/WebAssembly build to use a fixed heap size instead of growable memory.
- Improves compatibility with newer Chrome versions and helps prevent WebGL upload failures and related runtime issues.
…iabr#1752)

Bug Fixes:
- Fixed client message parsing when encountering unknown or unsupported opcodes, so the client correctly stops at the end of the current message instead of continuing to read.
- Prevented cases where malformed/unknown data could cause the client to loop indefinitely and degrade performance or memory usage.
…ibiabr#1754)

New Features:
- Added a new target danger readout, making the current danger value available during gameplay.
- Danger information now tracks consistently with each macro cycle, improving real-time visibility into risk level.
…sewith) (opentibiabr#1755)

Bug Fixes:
- Improved compatibility when using inventory items on older client versions, reducing silent failures.
- The game now correctly identifies the matching inventory item and uses accurate slot/stack information for the action.
- If the item isn’t found in the player’s inventory, the game will check nearby containers and proceed when available.
…ntibiabr#1759)

Style:
- Updated the NPC trade and chat window layout for improved positioning.
- Adjusted console sizing and spacing for a more balanced appearance.
- Centered the trade window and refined chat mode toggle placement.
…pentibiabr#1761)

Bug Fixes:
- Improved animation timing for creatures with attached animators.
- Ensured animator-driven phases are used when available, while preserving existing behavior for other creatures.
Bug Fixes:
- Improved rendering sequencing so preload work runs before any foreground interface draw tasks, reducing timing-related inconsistencies.
- Refined foreground UI rendering logic: it now renders immediately only when appropriate for offline play, and otherwise enqueues foreground UI updates when map rendering is available—removing the prior fallback that could render at the wrong time.
…1764)

New Features:
- Added the ability to pause and resume statistics collection.
- While paused, new statistics are no longer recorded; previously gathered statistics remain intact.
- Lua scripts can now control statistics collection using new pause and resume commands.
…ed (opentibiabr#1765)

Bug Fixes:
- Improved NPC trading quantity calculations for items with active imbuements.
- Prevented equipped imbuement items from being counted twice when determining sellable quantities.
- Ensured sellable item quantities never display as negative.
- Improved tracking cleanup when closing NPC trade windows.
Bug Fixes:
- Improved release archive selection by scoring candidate assets against the client version for more accurate matches.
- Added macOS-archive-path detection to exclude incompatible .app.zip/macos-variant archives from selection.
- Refined the no-match behavior so the system cleanly falls back to the standard zip download when no best archive is available.
@blakinio
blakinio marked this pull request as ready for review July 25, 2026 07:52
blakinio added 11 commits July 25, 2026 15:06
Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.
* chore(ci): claim Windows-only validation task

* ci: run required builds only on Windows

* docs(ci): record temporary Windows-only build policy

* docs(changelog): note Windows-only CI policy

* docs(task): record Windows-only CI implementation

* docs(architecture): define Oteryn client agent blueprint (#28)

Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.

* docs(task): record Windows-only CI validation
blakinio added 7 commits July 25, 2026 18:31
* docs(task): archive Windows-only CI task

* docs(task): remove archived Windows-only task
Record the verified PR #28 squash merge SHA in the archived OTC-20260725-agent-architecture task and replace the stale pending-merge marker.
@blakinio
blakinio enabled auto-merge (squash) July 25, 2026 22:44
@blakinio
blakinio merged commit 38ef140 into main Jul 25, 2026
14 checks passed
@blakinio
blakinio deleted the sync/OTC-20260725-opentibiabr-16-commits branch July 25, 2026 22:55
blakinio added a commit that referenced this pull request Jul 25, 2026
Archive OTC-20260725-upstream-sync-16 after PR #26 merged as 38ef140 and exact-head CI run 30176493622 passed.

Move the task from active to archive and mark the merged Stats, user-directory and bot/manual-walk interfaces as maintained.
blakinio added a commit that referenced this pull request Jul 26, 2026
* docs(task): start comprehensive client and upstream audit

* docs(audit): add comprehensive client and upstream plan

* docs(task): record audit and upstream disposition

* docs(architecture): define Oteryn client agent blueprint (#28)

Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.

* ci: limit required builds to Windows (#27)

* chore(ci): claim Windows-only validation task

* ci: run required builds only on Windows

* docs(ci): record temporary Windows-only build policy

* docs(changelog): note Windows-only CI policy

* docs(task): record Windows-only CI implementation

* docs(architecture): define Oteryn client agent blueprint (#28)

Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.

* docs(task): record Windows-only CI validation

* docs(task): archive Windows-only CI work (#29)

* docs(task): archive Windows-only CI task

* docs(task): remove archived Windows-only task

* docs(audit): refresh synchronization gate and handoff

* docs(audit): align plan with reviewed synchronization result

* docs(task): finalize architecture merge metadata (#30)

Record the verified PR #28 squash merge SHA in the archived OTC-20260725-agent-architecture task and replace the stale pending-merge marker.

* sync(upstream): evaluate 16 opentibiabr commits (#26)

* fix(platform): compute mouseMoved delta in Cocoa mouse move events (opentibiabr#1747)

Bug Fixes:
- Mouse movement input now reports the correct movement delta when the cursor moves, improving responsiveness and accuracy for pointer-based interactions.

* fix(rewardwall): send the daily reward source byte Canary expects (opentibiabr#1748)

Bug Fixes:
- Improved daily reward collection behavior so shrine rewards are handled correctly.
- Shrine-based rewards now collect immediately for free and return users to the reward wall UI.
- Non-shrine reward confirmations now send the proper reward flag, preventing incorrect reward requests.

* fix: few modules that fail to load on the browser/wasm build (opentibiabr#1749)

Bug Fixes:
- Improved stability and consistency in wheel, gem, workshop, and action selection flows.
- Fixed UI behavior so graph-related controls are now available in all supported builds.
- Updated glow rendering to work reliably across more graphics environments.

* fix: allow ground-border items as use-with targets in Tile::getTopMultiUseThing (opentibiabr#1750)

Bug Fixes:
- Adjusted tile interaction behavior so certain items on a tile can now be selected more consistently.
- Improved the fallback selection logic to better recognize eligible multi-use objects, including some items that were previously skipped.

* fix: webgl crash on chrome 149+ (growable memory = resizable sharedarraybuffer) (opentibiabr#1751)

Bug Fixes:
- Updated the browser/WebAssembly build to use a fixed heap size instead of growable memory.
- Improves compatibility with newer Chrome versions and helps prevent WebGL upload failures and related runtime issues.

* fix: stop busy loop / OOM on unknown opcodes in parseMessage (opentibiabr#1752)

Bug Fixes:
- Fixed client message parsing when encountering unknown or unsupported opcodes, so the client correctly stops at the end of the current message instead of continuing to read.
- Prevented cases where malformed/unknown data could cause the client to loop indefinitely and degrade performance or memory usage.

* fix: expose TargetBot.Danger() in cavebot_1.3 for cave scripts (opentibiabr#1754)

New Features:
- Added a new target danger readout, making the current danger value available during gameplay.
- Danger information now tracks consistently with each macro cycle, improving real-time visibility into risk level.

* fix: useInventoryItemWith source stackpos on pre-780 protocols (7.6 usewith) (opentibiabr#1755)

Bug Fixes:
- Improved compatibility when using inventory items on older client versions, reducing silent failures.
- The game now correctly identifies the matching inventory item and uses accurate slot/stack information for the action.
- If the item isn’t found in the player’s inventory, the game will check nearby containers and proceed when available.

* fix: add --user-dir flag to isolate configs and profiles (opentibiabr#1756)

* fix: restore modules.game_interface.lastManualWalk for game_bot (opentibiabr#1757)

* fix: center NPC trade window and fix chat console/toggle overlap (opentibiabr#1759)

Style:
- Updated the NPC trade and chat window layout for improved positioning.
- Adjusted console sizing and spacing for a more balanced appearance.
- Centered the trade window and refined chat mode toggle placement.

* fix: outfit animation speed ignoring Animator when always animated (opentibiabr#1761)

Bug Fixes:
- Improved animation timing for creatures with attached animators.
- Ensured animator-driven phases are used when available, while preserving existing behavior for other creatures.

* fix: call draw preLoad before rendering foreground (opentibiabr#1763)

Bug Fixes:
- Improved rendering sequencing so preload work runs before any foreground interface draw tasks, reducing timing-related inconsistencies.
- Refined foreground UI rendering logic: it now renders immediately only when appropriate for offline play, and otherwise enqueues foreground UI updates when map rendering is available—removing the prior fallback that could render at the wrong time.

* feat: add 'resume' and 'pause' functions to Stats class (opentibiabr#1764)

New Features:
- Added the ability to pause and resume statistics collection.
- While paused, new statistics are no longer recorded; previously gathered statistics remain intact.
- Lua scripts can now control statistics collection using new pause and resume commands.

* fix: NPC trade greys out sellable items when an imbued copy is equipped (opentibiabr#1765)

Bug Fixes:
- Improved NPC trading quantity calculations for items with active imbuements.
- Prevented equipped imbuement items from being counted twice when determining sellable quantities.
- Ensured sellable item quantities never display as negative.
- Improved tracking cleanup when closing NPC trade windows.

* fix: select client asset archives by version (opentibiabr#1766)

Bug Fixes:
- Improved release archive selection by scoring candidate assets against the client version for more accurate matches.
- Added macOS-archive-path detection to exclude incompatible .app.zip/macos-variant archives from selection.
- Refined the no-match behavior so the system cleanly falls back to the standard zip download when no best archive is available.

* docs(architecture): define Oteryn client agent blueprint (#28)

Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.

* fix(sync): preserve architecture and protocol gates

* fix(sync): defer unverified asset archive selection

* fix(npctrade): stop imbuement tracking on lifecycle end

* revert: restore complete NPC trader module

* fix(npctrade): stop imbuement tracking on lifecycle end

* test(protocol): cover skipping unread framed message bytes

* test(protocol): reuse existing InputMessage coverage

* docs(agents): catalogue runtime Stats controls

* ci: limit required builds to Windows (#27)

* chore(ci): claim Windows-only validation task

* ci: run required builds only on Windows

* docs(ci): record temporary Windows-only build policy

* docs(changelog): note Windows-only CI policy

* docs(task): record Windows-only CI implementation

* docs(architecture): define Oteryn client agent blueprint (#28)

Add the normative Oteryn OTClient architecture, workstream/file ownership map, copy-ready new-agent prompt, updated read order, and archived task record.

* docs(task): record Windows-only CI validation

* docs(agents): catalogue upstream public interfaces

* docs(task): archive Windows-only CI work (#29)

* docs(task): archive Windows-only CI task

* docs(task): remove archived Windows-only task

* docs(changelog): record reviewed upstream synchronization

* docs(task): finalize architecture merge metadata (#30)

Record the verified PR #28 squash merge SHA in the archived OTC-20260725-agent-architecture task and replace the stale pending-merge marker.

* docs(task): claim upstream synchronization

---------

Co-authored-by: mimus-assa <73607556+mimus-assa@users.noreply.github.com>
Co-authored-by: Kizuno18 <110933270+Kizuno18@users.noreply.github.com>
Co-authored-by: Eduardo Gallifa <eduardogallifao@gmail.com>
Co-authored-by: scarneiromarcelo-pixel <s.carneiro.marcelo@icloud.com>
Co-authored-by: Sherrat <85650362+gilfernandes234@users.noreply.github.com>
Co-authored-by: karlo <55144452+kiletic@users.noreply.github.com>
Co-authored-by: Eduardo Dantas <eduardo.dantas@hotmail.com.br>

* docs(audit): record terminal upstream synchronization

* docs(audit): finalize synchronized baseline and execution order

* docs(task): archive upstream synchronization (#32)

Archive OTC-20260725-upstream-sync-16 after PR #26 merged as 38ef140 and exact-head CI run 30176493622 passed.

Move the task from active to archive and mark the merged Stats, user-directory and bot/manual-walk interfaces as maintained.

---------

Co-authored-by: mimus-assa <73607556+mimus-assa@users.noreply.github.com>
Co-authored-by: Kizuno18 <110933270+Kizuno18@users.noreply.github.com>
Co-authored-by: Eduardo Gallifa <eduardogallifao@gmail.com>
Co-authored-by: scarneiromarcelo-pixel <s.carneiro.marcelo@icloud.com>
Co-authored-by: Sherrat <85650362+gilfernandes234@users.noreply.github.com>
Co-authored-by: karlo <55144452+kiletic@users.noreply.github.com>
Co-authored-by: Eduardo Dantas <eduardo.dantas@hotmail.com.br>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants