Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Commit 35d79cb

Browse files
Doc updates
1 parent 46bdf29 commit 35d79cb

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

ALIDADE-SPEC.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ Errors block upload and must be resolved first; warnings are surfaced to the use
220220
| Tag value exceeds 255 character OSM limit | |
221221
| Impossible oneway (highway with oneway tag forming a routing island - no way in or out) | |
222222
| Deprecated tags | Shows migration suggestion from `id-tagging-schema` |
223+
| Untagged standalone node (locally edited, not a vertex of any way) | |
224+
| Untagged way (locally edited, not a relation member; `area=yes`-only counts as untagged) | |
223225

224226
#### Info
225227

@@ -231,7 +233,7 @@ Errors block upload and must be resolved first; warnings are surfaced to the use
231233

232234
The following iD validators are omitted from Alidade as not applicable or out of scope:
233235

234-
- **Untagged node in way** - nodes that are only geometry (no tags) are perfectly valid and extremely common; flagging them creates noise
236+
- **Untagged node in way** (way-vertex nodes) - nodes that serve only as geometry vertices are perfectly valid and extremely common; flagging them creates noise. Note: untagged *standalone* nodes (not vertices of any way) *are* flagged as a warning.
235237
- **Private data** (`phone`, `email`, `website` on personal features) - paternalistic for a power-user editor
236238
- **Help request** - iD-specific UI affordance, not relevant
237239
- **MapRules** - iD-specific hosted task management integration
@@ -532,8 +534,11 @@ Commit the regenerated files in `Alidade.Osm/AutoGen/TaggingSchemas/`, `Alidade.
532534
│ └── assets/js/ # indexeddb-interop.js, auth-interop.js
533535
├── Alidade.Osm/ # OSM domain models, API services, OSM-specific handlers, and validators
534536
│ ├── Handlers/
535-
│ │ ├── Editing/ # OSM element mutation handlers (CreateNode, MoveNode, DeleteWay, UpdateTags, etc.)
536-
│ │ └── Parsing/ # FetchBbox, ParseOsmXml, UploadChangeset, etc.
537+
│ │ ├── Changeset/ # BuildChangesets, CloseChangeset, CreateChangeset, UploadChangeset
538+
│ │ ├── Editing/ # OSM element mutation handlers (CreateNode, MoveNode, DeleteWay, FetchBbox, FetchElement, etc.)
539+
│ │ ├── Parsing/ # BuildOsmChangeXml, ParseDiffResult, ParseNotesJson, ParseOsmXml
540+
│ │ ├── Tagging/ # BulkUpdateTags, MergePresetTags, UpdateTags
541+
│ │ └── Tools/ # Gridify and Square algorithm handlers
537542
│ ├── Models/
538543
│ │ ├── EditBuffer/ # EditBufferState, ConflictItem
539544
│ │ ├── Validation/ # ValidationIssue, ValidationSeverities

CLAUDE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Project Overview
44

5-
Alidade is a browser-based OpenStreetMap editor built on Blazor WebAssembly (C#). It targets experienced OSM contributors and aims for feature parity with iD. The UI is rendered via MapLibre GL JS through a JS interop boundary; all application logic lives in C#. Key external data sources are `id-tagging-schema` (presets) and `name-suggestion-index`, both embedded at build time by `Alidade.OsmGen`.
5+
Alidade is a browser-based OpenStreetMap editor built on Blazor WebAssembly (C#). It targets experienced OSM contributors and aims for feature parity with iD. The UI is rendered via MapLibre GL JS through a JS interop boundary; all application logic lives in C#. Key external data sources are `id-tagging-schema` (presets), `name-suggestion-index`, and `editor-layer-index` (imagery layers), all embedded at build time by `Alidade.OsmGen`.
66

77
---
88

@@ -68,7 +68,7 @@ Singleton state services are distributed across projects based on where their mo
6868
Each project owns an Autofac module that registers its own services:
6969
- `Alidade.Core/AlidadeCoreModule.cs` — registers `SettingsStateService`
7070
- `Alidade.Map/AlidadeMapModule.cs` — registers `MapInteropService` and map-specific services
71-
- `Alidade.Osm/AlidadeOsmModule.cs` — registers `EditBufferStateService`, OSM API services, `PresetService`, `NsiService`
71+
- `Alidade.Osm/AlidadeOsmModule.cs` — registers `EditBufferStateService`, `OsmCacheService`, OSM API services, `PresetService`, `NsiService`
7272
- `Alidade/AlidadeModule.cs` — registers app services and state services; loads the above sub-modules; also registers all Questy handlers by scanning `Alidade`, `Alidade.Map`, and `Alidade.Osm` assemblies
7373

7474
Use constructor injection throughout. State services are singletons; application services are instance-per-lifetime-scope.
@@ -142,7 +142,7 @@ See [CODE_STYLE.md](CODE_STYLE.md) for the full rules. The most commonly violate
142142
Release builds execute `git describe --long --always --dirty --exclude=* --abbrev=8` via a `SetSourceRevisionId` MSBuild target in `Directory.Build.props` to embed an 8-character commit hash as the version suffix. Debug builds use the suffix `"develop"`.
143143

144144
**MapLibre is copied, not re-bundled**
145-
`Alidade.Map.csproj` copies MapLibre JS, CSS, and worker files from node_modules verbatim to `Alidade.Map/wwwroot/assets/lib/maplibre-gl/` via a `CopyMapLibre` MSBuild target. Do not run them through esbuild, webpack, or any other bundler — doing so would strip the `window.maplibregl` UMD global that `map-interop.js` depends on.
145+
`Alidade.Map.csproj` copies MapLibre JS, CSS, and license files from node_modules verbatim to `Alidade.Map/wwwroot/assets/lib/maplibre-gl/` via a `CopyMapLibre` MSBuild target. Do not run them through esbuild, webpack, or any other bundler — doing so would strip the `window.maplibregl` UMD global that `map-interop.js` depends on.
146146

147147
**OsmGen generates three datasets**
148148
`Alidade.OsmGen` produces compiled C# for three data sources, not just two:

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ Alidade is a browser-based [OpenStreetMap](https://www.openstreetmap.org) editor
44

55
## Key characteristics
66
- **Blazor WebAssembly** — all application logic runs in C# compiled to WASM; no JavaScript framework
7-
- **MapLibre GL JS** — WebGL-accelerated map rendering; OSM edits are pushed as GeoJSON diffs through a thin JS interop boundary
7+
- **[MapLibre GL JS](https://github.com/maplibre/maplibre-gl-js)** — WebGL-accelerated map rendering; OSM edits are pushed as GeoJSON diffs through a thin JS interop boundary
88
- **Offline-capable** — full edit sessions are possible without connectivity; sync on reconnect
99
- **Future desktop target** — architecture keeps an Electron packaging path open
1010

11+
## Data assets
12+
Alidade embeds the following OSM community datasets as compiled C# at build time:
13+
14+
- [`@openstreetmap/id-tagging-schema`](https://github.com/openstreetmap/id-tagging-schema)
15+
- [`name-suggestion-index`](https://github.com/osmlab/name-suggestion-index)
16+
- [`@openstreetmap/editor-layer-index`](https://github.com/osmlab/editor-layer-index)
17+
1118
## Contributions
1219

1320
Since Alidade is in early development and is not yet ready for general use, I am not accepting public pull requests until the project stabilizes.

0 commit comments

Comments
 (0)