CREATE TABLE ias_upgrade_logs (
    id BIGSERIAL PRIMARY KEY,
    version VARCHAR(64) NOT NULL UNIQUE,
    released_at TIMESTAMPTZ NOT NULL,
    title VARCHAR(255) NOT NULL,
    description TEXT NOT NULL,
    changes JSONB NOT NULL DEFAULT '[]'::jsonb,
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX idx_ias_upgrade_logs_released
    ON ias_upgrade_logs(released_at DESC);

INSERT INTO ias_upgrade_logs (
    version,
    released_at,
    title,
    description,
    changes
) VALUES (
    '0.1.1',
    '2026-07-06T00:00:00+08:00',
    'Context management and startup notices',
    'Added standalone context management, memory tooling, session summaries, LLM response compatibility, startup online notices, and initial version/changelog files.',
    '[
        "Added the standalone Rust context module for long-term memories, session context, session summaries, and recent-week summaries.",
        "Added timestamped memory records and context APIs for querying, creating, updating, and deleting memories.",
        "Added context-window rollover rules for /new, two-hour inactivity, and token-limit thresholds.",
        "Added automatic session summary generation when a new context is opened.",
        "Added memory tools so the assistant can query and update user memories during conversation.",
        "Fixed LLM response parsing so router responses without service_tier are accepted.",
        "Added startup online notices so users receive a friendly message after the service comes back online.",
        "Added the project version file and changelog, and documented the version/changelog rule."
    ]'::jsonb
) ON CONFLICT (version) DO UPDATE SET
    released_at = EXCLUDED.released_at,
    title = EXCLUDED.title,
    description = EXCLUDED.description,
    changes = EXCLUDED.changes;

INSERT INTO ias_upgrade_logs (
    version,
    released_at,
    title,
    description,
    changes
) VALUES (
    '0.1.2',
    '2026-07-06T00:00:00+08:00',
    'Persisted upgrade logs and Codex rules',
    'Added persisted upgrade records and clarified that version/changelog rules must live in the AGENTS.md file Codex reads for the current context.',
    '[
        "Added the ias_upgrade_logs database table for persisted upgrade records.",
        "Added migration-seeded upgrade records for versions 0.1.1 and 0.1.2.",
        "Updated Codex project rules in AGENTS.md so version bumps update VERSION, crate versions, CHANGELOG.md, and database upgrade records together.",
        "Clarified that project rules should live in the AGENTS.md file Codex actually reads for the current context."
    ]'::jsonb
) ON CONFLICT (version) DO UPDATE SET
    released_at = EXCLUDED.released_at,
    title = EXCLUDED.title,
    description = EXCLUDED.description,
    changes = EXCLUDED.changes;
