Initial commit: LinkSyncServer and LinkSyncExtension projects with complete documentation, models, API endpoints, tests, and extension implementation
This commit is contained in:
70
Linkding Browser Extension/LinkdingSync/AGENTS.md
Normal file
70
Linkding Browser Extension/LinkdingSync/AGENTS.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# AGENTS.md - Project Guidance for Coding Agents
|
||||
|
||||
## Project Overview
|
||||
LinkdingSync is a Firefox browser extension that synchronizes bookmarks with a self-hosted Linkding instance. It provides bi-directional sync, folder structure preservation, and optional auto-tag generation.
|
||||
|
||||
## Setup & Build Commands
|
||||
```bash
|
||||
# Install project dependencies
|
||||
npm install
|
||||
|
||||
# Start development server
|
||||
npm run dev
|
||||
|
||||
# Run unit tests
|
||||
npm test
|
||||
|
||||
# Run linting
|
||||
npm run lint
|
||||
|
||||
# Build production bundle
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Architecture Notes
|
||||
- **Extension Manifest**: `manifest.json` - Firefox extension configuration
|
||||
- **Popup UI**: `popup.html` + `popup.css` + `popup.js` - User interface
|
||||
- **Background Service**: `background.js` - Service worker for sync logic
|
||||
- **Utils**: `utils/` folder - Bookmark manipulation, sync logic, conflict resolution
|
||||
- **API Integration**: Uses Linkding REST API for bookmark operations
|
||||
|
||||
## Testing
|
||||
- **Unit tests**: `npm test` - Test individual utility functions
|
||||
- **E2E tests**: `npx playwright test` - Browser automation tests (if Playwright configured)
|
||||
- **Coverage target**: 80%
|
||||
- **Browser tests**: Use Playwright to simulate user interactions
|
||||
|
||||
## Conventions
|
||||
- **File naming**: PascalCase for components, kebab-case for CSS classes
|
||||
- **Error handling**: Try/catch with async/await, error boundaries
|
||||
- **API patterns**: Restful endpoints with token-based authentication
|
||||
- **Do not modify**: `manifest.json` requires Firefox extension signing (unless in development mode)
|
||||
- **Secrets**: API tokens stored in browser storage (client-side only)
|
||||
|
||||
## Session Logging
|
||||
- **Auto-saved to**: `@LinkdingSync\chatlog.md`
|
||||
- **Review via**: File explorer (not IDE working set)
|
||||
- **Archived to**: `../docs\session-YYYYMMDD.md`
|
||||
|
||||
## Known Issues
|
||||
- Firefox extension requires signing for distribution (not in dev mode)
|
||||
- API token storage is client-side only (user must protect token)
|
||||
- Browser compatibility limited to Firefox (extension format)
|
||||
|
||||
## Project Tools
|
||||
- **OpenCode**: Main agent for iterative test development
|
||||
- **Playwright**: For browser automation and E2E testing
|
||||
- **API Endpoint**: `https://api.links.blabber1565.com` (example - adjust as needed)
|
||||
|
||||
## Notes Structure Example
|
||||
Bookmarks in Linkding use this notes format:
|
||||
```json
|
||||
{
|
||||
"path": "Work/Resources/Development",
|
||||
"userNotes": "Development resources folder",
|
||||
"autoTags": [
|
||||
{"name": "Work"},
|
||||
{"name": "Resources"},
|
||||
{"name": "Development"}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user