Skip to content

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

Merged
blakinio merged 9 commits into
mainfrom
docs/OTC-20260725-agent-architecture
Jul 25, 2026
Merged

docs(architecture): define Oteryn client agent blueprint#28
blakinio merged 9 commits into
mainfrom
docs/OTC-20260725-agent-architecture

Conversation

@blakinio

Copy link
Copy Markdown
Owner

Summary

Create durable architecture and onboarding documentation for future OTClient/Oteryn agents:

  • target technical architecture and trust boundaries;
  • repository/file structure and workstream ownership map;
  • copy-ready autonomous startup prompt;
  • updated agent documentation read order.

Scope

Documentation only. No runtime code, protocol, assets, CI workflow or external repository changes.

Coordination

Task: OTC-20260725-agent-architecture

@blakinio
blakinio marked this pull request as ready for review July 25, 2026 12:56
@blakinio
blakinio merged commit 226289a into main Jul 25, 2026
15 checks passed
@blakinio
blakinio deleted the docs/OTC-20260725-agent-architecture branch July 25, 2026 13:06
blakinio added a commit that referenced this pull request Jul 25, 2026
* 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 a commit that referenced this pull request Jul 25, 2026
Record the verified PR #28 squash merge SHA in the archived OTC-20260725-agent-architecture task and replace the stale pending-merge marker.
blakinio added a commit that referenced this pull request Jul 25, 2026
* 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>
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.

1 participant