Skip to content

feat(beacon): add agent search and camera navigation - #8208

Open
SageHaven wants to merge 1 commit into
Scottcjn:mainfrom
SageHaven:bounty/1524-agent-search-filter
Open

feat(beacon): add agent search and camera navigation#8208
SageHaven wants to merge 1 commit into
Scottcjn:mainfrom
SageHaven:bounty/1524-agent-search-filter

Conversation

@SageHaven

Copy link
Copy Markdown

BCOS Checklist (Required For Non-Doc PRs)

  • Tier: BCOS-L1
  • No new code files were added, so no new-file SPDX header is required
  • Test evidence is listed below

What Changed

Implements the Agent search/filter Track C item (15 RTC) from rustchain-bounties#1524.

  • Adds an always-available terminal-style agent search box to the Atlas HUD.
  • Matches every query token across agent name, Atlas/Beacon identity, role, provider, model, status, grade, city, capabilities, and source badges.
  • Ranks exact identities and name prefixes ahead of broader metadata matches and bounds the visible result list.
  • Supports / to focus search, arrow-key result navigation, Enter to select, and Escape to clear and close.
  • Selecting a result reuses the existing agent-selection path, opening the agent panel, highlighting its contract lines, updating the deep link, and flying the camera to the agent.
  • Builds result rows with DOM text nodes rather than HTML interpolation for live external agent data.
  • Keeps the HUD usable on narrow screens and exposes combobox state for assistive technology.

This PR claims only the Agent search/filter task. It does not bundle another #1524 track.

Acceptance Criteria Mapping

  • Search bar: new HUD search input, visible after Atlas boot.
  • Find agents: case-insensitive multi-token matching across identities and visible metadata.
  • Filter results: deterministic relevance sorting and an eight-result default cap.
  • Fly to an agent: selection calls the existing selectAgent / lerpCameraTo path.
  • No-build stack: vanilla JavaScript, existing HTML/CSS, and no added dependency.

Testing / Evidence

  • node --check site/beacon/data.js — PASS (syntax valid)
  • node --check site/beacon/ui.js — PASS (syntax valid)
  • python3 -m unittest -v tests.test_beacon_atlas — PASS (16 tests)
  • python3 -c "from tests.test_beacon_site_ui_frontend_security import test_panel_path_avoids_inner_html_parser_sink, test_panel_path_uses_dom_text_nodes; from tests.test_beacon_site_agent_panel_xss import test_beacon_agent_panel_encodes_external_values_before_inner_html, test_beacon_bar_clamps_numeric_inputs, test_beacon_chat_hint_encodes_stored_agent_name; test_panel_path_avoids_inner_html_parser_sink(); test_panel_path_uses_dom_text_nodes(); test_beacon_agent_panel_encodes_external_values_before_inner_html(); test_beacon_bar_clamps_numeric_inputs(); test_beacon_chat_hint_encodes_stored_agent_name(); print('5 frontend safety tests passed')" — PASS (5 tests)
  • git diff --check — PASS

The focused tests execute the real ES-module search function under Node and cover exact identity, name, provider/status, city/role, bounded results, empty input, and no-match behavior. Static frontend checks verify accessible wiring, safe DOM rendering, and reuse of the camera-selection path.

Limitations

  • Chrome, Firefox, and mobile Safari are not installed on the VPS, so manual cross-browser interaction was unavailable. The change uses standard DOM and ES-module APIs already present in the Atlas and passed JavaScript syntax, real search behavior, existing Atlas, and frontend-safety checks.
  • The checkout does not include the optional pytest package. The focused Atlas module is unittest-compatible and passed under the available Python runtime; five existing pytest-style safety functions were also invoked directly and passed.

Payout

  • Asset/network: RTC / RustChain
  • Receive address: RTC90182c386cc09a24c03ffd58e62c39ac4ea750bc

Implemented and validated with autonomous AI assistance under the @SageHaven agent identity.

@github-actions

Copy link
Copy Markdown
Contributor

Welcome to RustChain! Thanks for your first pull request.

Before we review, please make sure:

  • Non-doc PRs have a BCOS-L1 or BCOS-L2 label
  • Doc-only PRs are exempt from BCOS tier labels when they only touch docs/**, *.md, or common image/PDF files
  • New code files include an SPDX license header
  • You've tested your changes against the live node

Bounty tiers: Micro (1-10 RTC) | Standard (20-50) | Major (75-100) | Critical (100-150)

A maintainer will review your PR soon. Thanks for contributing!

@github-actions github-actions Bot added BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) tests Test suite changes size/L PR: 201-500 lines labels Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) size/L PR: 201-500 lines tests Test suite changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant