diff --git a/CLAUDE.md b/CLAUDE.md
index 146db27..afd28b7 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -155,6 +155,18 @@ Commits should be prefixed with:
Only commits with these prefixes appear in the auto-generated `HISTORY.md`.
+### HISTORY.md Merge Conflicts
+The `HISTORY.md` file is auto-generated when `staging` is merged to `main`. This means:
+- `main` always has the latest HISTORY.md
+- `staging` lags behind until the next release
+- Feature branches created from `main` have the updated history
+
+When merging feature branches to `staging`, conflicts in HISTORY.md are expected. Resolve by accepting the incoming version:
+```bash
+git checkout --theirs HISTORY.md
+git add HISTORY.md
+```
+
### GitHub Actions
- **`publish.yml`**: Triggered on push to `main`, handles versioning and multi-platform publishing
- **`test-pr.yml`**: Runs tests on pull requests
diff --git a/HISTORY.md b/HISTORY.md
index 238d819..d6bce84 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [1.7.0](https://github.com/cortexapps/cli/releases/tag/1.7.0) - 2025-11-19
+
+[Compare with 1.6.0](https://github.com/cortexapps/cli/compare/1.6.0...1.7.0)
+
+## [1.6.0](https://github.com/cortexapps/cli/releases/tag/1.6.0) - 2025-11-14
+
+[Compare with 1.5.0](https://github.com/cortexapps/cli/compare/1.5.0...1.6.0)
+
+### Bug Fixes
+
+- remove rate limiter initialization log message (#169) #patch ([015107a](https://github.com/cortexapps/cli/commit/015107aca15d5a4cf4eb746834bcbb7dac607e1d) by Jeff Schnitter).
+
## [1.5.0](https://github.com/cortexapps/cli/releases/tag/1.5.0) - 2025-11-13
[Compare with 1.4.0](https://github.com/cortexapps/cli/compare/1.4.0...1.5.0)
diff --git a/data/import/entity-types/cli-test.json b/data/import/entity-types/cli-test.json
index 132a29e..0628c4c 100644
--- a/data/import/entity-types/cli-test.json
+++ b/data/import/entity-types/cli-test.json
@@ -1,5 +1,6 @@
{
"description": "This is a test entity type definition.",
+ "iconTag": "Cortex-builtin::Basketball",
"name": "CLI Test With Empty Schema",
"schema": {},
"type": "cli-test"
diff --git a/data/run-time/entity-type-invalid-icon.json b/data/run-time/entity-type-invalid-icon.json
new file mode 100644
index 0000000..7d37ddf
--- /dev/null
+++ b/data/run-time/entity-type-invalid-icon.json
@@ -0,0 +1,7 @@
+{
+ "description": "This is a test entity type definition with invalid icon.",
+ "iconTag": "invalidIcon",
+ "name": "CLI Test With Invalid Icon",
+ "schema": {},
+ "type": "cli-test-invalid-icon"
+}
diff --git a/tests/test_entity_types.py b/tests/test_entity_types.py
index 8b2d65b..c5b59fd 100644
--- a/tests/test_entity_types.py
+++ b/tests/test_entity_types.py
@@ -12,6 +12,18 @@ def test_resource_definitions(capsys):
response = cli(["entity-types", "list"])
assert any(definition['type'] == 'cli-test' for definition in response['definitions']), "Should find entity type named 'cli-test'"
- cli(["entity-types", "get", "-t", "cli-test"])
+ # Verify iconTag was set correctly
+ response = cli(["entity-types", "get", "-t", "cli-test"])
+ assert response.get('iconTag') == "Cortex-builtin::Basketball", "iconTag should be set to Cortex-builtin::Basketball"
cli(["entity-types", "update", "-t", "cli-test", "-f", "data/run-time/entity-type-update.json"])
+
+
+def test_resource_definitions_invalid_icon():
+ # API does not reject invalid iconTag values - it uses a default icon instead
+ # This test verifies that behavior and will catch if the API changes to reject invalid icons
+ response = cli(["entity-types", "create", "-f", "data/run-time/entity-type-invalid-icon.json"], return_type=ReturnType.RAW)
+ assert response.exit_code == 0, "Creation should succeed even with invalid iconTag (API uses default icon)"
+
+ # Clean up the test entity type
+ cli(["entity-types", "delete", "-t", "cli-test-invalid-icon"])