chore(opencode-sandbox): add SSH auth and workspace mount for Gitea
- Mount host workspace at /home/ga/workspace - Add SSH key and known_hosts for Gitea auth - Configure git user identity in container
This commit is contained in:
14
AGENTS.md
14
AGENTS.md
@@ -9,7 +9,7 @@ This workspace is a monorepo containing data engineering projects and WhatsApp C
|
||||
```
|
||||
workspace/
|
||||
├── apps/
|
||||
│ ├── whatsapp-crm/ # Next.js CRM with Kanban board
|
||||
│ ├── whatsapp-crm/ # Next.js CRM with Kanban board (primary app)
|
||||
│ ├── whatsapp-sync/ # WhatsApp message sync service
|
||||
│ ├── whatsapp-reader/ # WhatsApp message reader
|
||||
│ └── timesfm-forecast/ # Time series forecasting app
|
||||
@@ -52,6 +52,7 @@ npm run dev # node --watch src/index.js
|
||||
npm run sync # node src/sync.js
|
||||
npm run test # Jest
|
||||
npm run test:watch # Jest watch mode
|
||||
npm run test:coverage # Jest with coverage
|
||||
```
|
||||
|
||||
### whatsapp-reader
|
||||
@@ -113,7 +114,6 @@ export async function POST(request: Request) {
|
||||
try {
|
||||
const body = await request.json()
|
||||
const validated = CreateContactInput.parse(body)
|
||||
// ... process
|
||||
} catch (error) {
|
||||
if (error instanceof ZodError) {
|
||||
return Response.json({ error: error.errors }, { status: 400 })
|
||||
@@ -138,14 +138,9 @@ interface Props {
|
||||
}
|
||||
|
||||
export default function ComponentName({ contacts, onContactClick }: Props) {
|
||||
// hooks first, then effects, then render
|
||||
const [state, setState] = useState(false)
|
||||
|
||||
return (
|
||||
<div>
|
||||
{/* JSX */}
|
||||
</div>
|
||||
)
|
||||
return <div>{/* JSX */}</div>
|
||||
}
|
||||
```
|
||||
|
||||
@@ -166,7 +161,6 @@ test('should update contact stage', async () => {
|
||||
render(<KanbanBoard {...props} />)
|
||||
|
||||
await user.click(screen.getByText('Move to Next Stage'))
|
||||
|
||||
expect(onStageChange).toHaveBeenCalledWith(1, 'DECIDINDO')
|
||||
})
|
||||
```
|
||||
@@ -188,4 +182,4 @@ test('should update contact stage', async () => {
|
||||
- whatsapp-crm uses Next.js 14 App Router
|
||||
- Database is sql.js (WebAssembly SQLite) - runs in browser
|
||||
- Authentication uses WhatsApp Web.js QR code scanning
|
||||
- STAGES constant defines the Kanban pipeline (defined in `src/lib/types.ts`)
|
||||
- STAGES constant defines the Kanban pipeline (defined in `src/lib/types.ts`)
|
||||
Reference in New Issue
Block a user