# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Denylist style: the image builds FROM SOURCE (see Dockerfile), so the
# context is the source tree. Exclude only what must NOT enter the build —
# host-built artifacts (arch-specific node_modules + dist), VCS, CI config,
# local secrets, and scratch dirs. Everything else (source, lockfile, the
# committed horizon.yaml) is needed by `pnpm install` + `pnpm package`.

**/node_modules
**/dist
# The card renderer builds outside any directory named `dist`, so `**/dist`
# does not reach it. Both stages are host-built and rebuilt by `pnpm package`.
**/dist-mcp-app
apps/bff/src/ai/mcp/app
.git
.github
.pnpm-store
**/.DS_Store
scripts/.release-work
scripts/.finalize-work
.claude

# horizon.yaml is the committed, env-driven config (package.mjs reads it into
# dist/, the Dockerfile bakes it as /app/horizon.yaml) — keep it in the context.
# Runtime state files carry local data; never ship them.
horizon-wire.jsonl
horizon-setup.json
horizon-alarms.json
