-
Notifications
You must be signed in to change notification settings - Fork 4
feat: introduce Telegram Bot for Green Goods #223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Oba-One
commented
Nov 26, 2025
- Added a new Telegram Bot package to facilitate user interactions with Green Goods, allowing users to join gardens, submit work, and approve submissions via Telegram.
- Implemented core functionalities including custodial wallet management, natural language submission, and voice-to-text capabilities using OpenAI Whisper.
- Established a structured architecture with a focus on ease of use and low-bandwidth accessibility, utilizing Telegraf for bot logic and better-sqlite3 for session management.
- Included comprehensive documentation outlining the bot's features, architecture, and setup instructions.
- Added a new Telegram Bot package to facilitate user interactions with Green Goods, allowing users to join gardens, submit work, and approve submissions via Telegram. - Implemented core functionalities including custodial wallet management, natural language submission, and voice-to-text capabilities using OpenAI Whisper. - Established a structured architecture with a focus on ease of use and low-bandwidth accessibility, utilizing Telegraf for bot logic and better-sqlite3 for session management. - Included comprehensive documentation outlining the bot's features, architecture, and setup instructions.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const account = privateKeyToAccount(generatePrivateKey()); | ||
| user = { | ||
| telegramId, | ||
| privateKey: account.source, // Store safely in real app! | ||
| address: account.address, | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Persist actual private key for generated wallets
On /start a new wallet is persisted with privateKey: account.source, but privateKeyToAccount sets source to the literal string "privateKey" rather than the hex key. Later flows use user.privateKey to rebuild an account for submissions and approvals, so every blockchain interaction will throw an invalid key error once a user tries to submit or approve work. Store the returned account.privateKey instead so the bot can sign transactions.
Useful? React with 👍 / 👎.
| import { Database } from "bun:sqlite"; | ||
| import path from "path"; | ||
| import fs from "fs"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bun-only SQLite import breaks Node start script
The storage layer imports Database from bun:sqlite, but the package’s start script runs node dist/index.js. In any environment without Bun, starting the bot will fail immediately with Cannot find module 'bun:sqlite' before it can handle Telegram updates. Use a Node-compatible SQLite client (e.g., better-sqlite3) or run the bot under Bun instead of Node to avoid this runtime crash.
Useful? React with 👍 / 👎.
…xperience - Updated Login component to handle explicit logout redirection and prevent flash during authentication restoration. - Refactored ProfileAccount to consolidate garden lists, improving the display of open gardens and membership status. - Enhanced error handling in wallet submission to provide clearer feedback for users regarding garden membership. - Updated localization files to reflect changes in garden terminology and improve user interface consistency.
- Updated Login and ProfileAccount components to remove DevConnect-related logic, streamlining the user experience. - Refactored useAutoJoinRootGarden hook to eliminate unnecessary checks for DevConnect membership. - Adjusted deployment scripts and contract configurations to support open joining based on garden settings rather than token ID. - Enhanced error handling and user feedback in garden joining processes, ensuring clearer communication of membership status.
…recated code - Replaced hardcoded chain ID references with DEFAULT_CHAIN_ID in various components, including ActionDetail, CreateAction, and EditAction, to ensure consistency and maintainability. - Removed the use of the formatters utility file, streamlining imports and enhancing code clarity. - Updated the Pinata initialization logic to utilize a new environment-based function, improving configuration handling. - Cleaned up the Header component by simplifying chain selection logic and enhancing user interface elements.
…ionality - Introduced new components including AddressDisplay, FileUploadField, and StatCard to enhance the admin interface. - Updated existing components such as EvidenceStep and InviteManagement to improve functionality and maintainability. - Removed deprecated components like StatusBadge and Pinata configuration, streamlining the codebase. - Enhanced various views and layouts to support the new components and improve user experience across the application.
…he application - Updated import paths for shared modules and components to simplify access and improve maintainability. - Introduced new card components (ActionCard, ActionCardSkeleton, FormCard, FormInfo, GardenCard, GardenCardSkeleton, WorkCard) to enhance the UI and provide better modularity. - Removed deprecated components and consolidated card exports for a cleaner structure. - Enhanced routing and configuration files to reflect the updated component architecture, improving overall application organization.
- Revised AGENTS.md files across packages to clarify architecture and responsibilities, including detailed descriptions of shared components and modules. - Added comprehensive documentation for the new shared package, outlining its structure, core modules, and usage patterns for hooks, providers, and workflows. - Updated the Telegram bot agent guide to reflect new functionalities and integration with the shared package for work submission. - Enhanced cross-package import rules to ensure consistent usage of shared code across client and admin applications. - Improved clarity on the role of shared components in the overall architecture, emphasizing best practices for importing and utilizing shared logic.
- Updated import paths for shared modules across various components to improve maintainability and consistency. - Introduced new utility functions for downloading work media and sharing work, enhancing functionality in the shared package. - Cleaned up existing imports and removed deprecated code to simplify the codebase and improve clarity.
…functionality - Introduced AppProvider to manage application state, including language support and PWA installation prompts. - Added JobQueueProvider to handle job processing, statistics, and event subscriptions for improved task management. - Implemented WorkProvider to orchestrate work submission, integrating form handling and validation for user interactions. - Enhanced context management across providers to streamline state sharing and improve overall application architecture.
- Updated import paths for App and JobQueue providers to follow consistent casing conventions across components and documentation. - Improved code clarity and maintainability by ensuring uniformity in import statements.
- Changed the hero title to "Bringing Regenerative Actions Onchain" and updated the description to reflect a focus on local hubs. - Standardized import statements in the Landing component for better clarity and organization.
- Updated AGENTS.md to clarify architecture, responsibilities, and usage patterns for hooks, providers, and workflows. - Improved README.md to provide a comprehensive overview of the shared package, including installation, usage, and key features. - Enhanced cross-package import rules and guidelines for consistent usage of shared code across client and admin applications. - Organized hook categories and module guidelines to streamline development and improve clarity for future contributors. - Added new utility functions and components to support enhanced functionality and maintainability across the shared package.
- Added DraftDialog component to prompt users about continuing previous work submissions. - Integrated draft detection logic in the Work component to identify meaningful progress and trigger the dialog. - Updated translations for draft-related messages in English, Spanish, and Portuguese. - Streamlined imports in various components for improved organization and clarity.
- Added new testing libraries to devDependencies for enhanced testing capabilities in both client and shared packages. - Updated existing dependencies to their latest versions for improved performance and security. - Refactored test commands in the quality rules to streamline the testing process for individual packages. - Removed outdated test files and excluded complex tests from the Vitest configuration to establish a cleaner testing baseline. - Enhanced documentation for validation protocols to ensure consistent testing practices across the codebase.