← Задача 009 — все материалы · оригинал на GitHub

Задача 009 — gbrain: как отделить базу недвижимости, типы страниц, гео

0. Что стоит на машине сейчас (факты из настроек, не из базы)

1. Три способа держать базу недвижимости отдельно

Как в gbrain задаётся путь к базе (проверено по коду)

Ключевая мысль доков

а) Изолированный источник federated=false в базе cheaptrip

б) Отдельная база gbrain со своим GBRAIN_HOME, своим сервером и MCP

в) Отдельная база, подключённая к основной через gbrain mounts add

Сравнительная таблица трёх способов

(а) изолированный источник (б) отдельная база GBRAIN_HOME (в) mount
Видят ли агенты cheaptrip через свой MCP Нет, если источник не federated и токен без гранта на него Нет Нет
Смешение в поиске Нет; но общий язык FTS и общая база Нет; свой язык FTS и своя схема Нет; свой язык FTS и своя схема
Постоянные процессы 0 новых 0 (stdio) или +1 служба (HTTP, свой plist) Как в (б)
Настройки Источник, токен с грантом, запись MCP в проекте Папка GBRAIN_HOME, запись MCP; для HTTP — plist, порт, токен Как в (б) плюс mounts.json в ~/.gbrain
Нужно ли трогать текущий сервер Админ-действия через него; CLI — вероятно, с короткой остановкой (🔮) Нет Нет; запись в ~/.gbrain/mounts.json
Бэкап Markdown в git; данные только из базы — внутри бэкапа cheaptrip Markdown в git плюс маленький свой backup create Как в (б)
Установка 4–5 шагов, часть через админку живого сервера ~4 шага, в своей папке (б) плюс 1 шаг
Откат sources archive, отозвать токен Удалить папку и запись MCP (б) плюс mounts remove
Ограничения Ошибка в гранте или federate — и данные видны cheaptrip stdio: одна сессия за раз, CLI блокируется на время сессии Мало готово (mounts sync/enable не выпущены), миграции вручную

2. Типы страниц и связи для «объект / место / человек / компания / событие»

Готовых пакетов для недвижимости нет

Хронология переговоров — Compiled truth + Timeline

Пример страницы объекта так, как её ждёт gbrain

---
type: property            # свой тип; до форка пакета будет предупреждение page_type_undeclared
title: "Ukio — Carrer de Verdi 12, 2-1, Gràcia"
status: shortlist          # → page_status; свои значения: candidate / shortlist / rejected / rented
purpose: rent              # rent | buy — для list_pages where
area: gracia               # равенство; для фильтра where
agency: companies/ukio
agent: people/maria-ukio-agent
geo: { lat: 41.4036, lng: 2.1565, precision: building }
price_eur: 1450
available_from: 2027-03-01
date: 2026-11-02
tags: [аренда, весна-2027, ukio]
---

## Сводка
Аренда у [Ukio](../companies/ukio.md), район [Gràcia](../areas/gracia.md), 2 спальни, 1450 EUR/мес.
Назначение: аренда весной 2027. Статус: в коротком списке.

## Состояние переговоров
Агент — [Maria](../people/maria-ukio-agent.md). Скидку за 12 месяцев не дают.

## Open Threads
- Можно ли с животными?
- Когда освобождается — 1 или 15 марта?

<!-- timeline -->

## Timeline
- **2026-11-02** | WhatsApp — Maria прислала планировку, цена 1450 без торга.
- **2026-10-28** | Ukio сайт — объявление найдено.

3. Координаты и гео-фильтр

4. Гипотеза «G Best» = gstack

Короткие выводы