Skip to content

Conversation

alltheseas
Copy link
Contributor

  • Overview: outlines how Notedeck’s agent-style apps fit into the repo, emphasizing architecture, coding patterns, and shared services.
    • Repo map: describes key crates (core host, chrome shell, columns client, shared UI, Dave agent, token utilities) and their responsibilities.
    • Core abstractions: details the App trait, Notedeck host, AppContext, and AppResponse flow that power app integration.
    • UI/navigation: explains chrome container behavior, app registration via NotedeckApp, preview/theming support, and shared egui components.
    • Data/networking: covers NostrDB usage, caching layers, relay pool subscriptions, and debounced persistence utilities.
    • Async patterns: highlights job pool usage, streaming updates (from Dave), and relay event handling.
    • Conventions: stresses strict linting, modular structure, tracing/profiling, localization workflow, and testing practices.
    • Agent integration checklist: step-by-step guidance for building, registering, theming, localizing, and wiring new agents.
    • Reference links: points to developer docs across crates for deeper dives into architecture, UI components, and agent tooling.

Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds AGENTS.md to document how agent-style apps integrate with Notedeck, covering architecture, shared services, UI patterns, data/networking, async patterns, conventions, and an integration checklist.

  • Introduces a high-level map of crates and responsibilities
  • Documents core abstractions (App, Notedeck host, AppContext, AppResponse) and UI/container patterns
  • Provides an agent integration checklist and references to deeper docs

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

### UI Container & Navigation

- **Chrome shell** (`crates/notedeck_chrome/src/chrome.rs`): wraps multiple `App` instances, draws sidebar navigation, and forwards egui `update` passes to the active app.
- **`NotedeckApp` enum** (`crates/notedeck_chrome/src/app.rs`) defines the shipping app roster (Columns/Damus, Dave, others) and provides constructors for wiring new apps.
Copy link

Copilot AI Oct 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Terminology mixes 'Columns' and 'Damus' in different places. To avoid confusion, standardize the naming (e.g., 'Damus (notedeck_columns)') here and use the same term consistently throughout the doc.

Copilot uses AI. Check for mistakes.

alltheseas and others added 4 commits October 16, 2025 12:03
Use a fully qualified path here for consistency with surrounding references (e.g., line 18). Suggest: (crates/notedeck/src/app.rs) instead of just (app.rs).

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
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