chatgear - Known Issues

🟡 Minor Issues

CG-001: Go ReadNFCTag equality ignores tag data changes

File: go/pkg/chatgear/stats.go

Description: ReadNFCTag.Equal compares only tag UIDs. If a tag's payload or metadata changes but the UID remains the same, the merge logic will treat it as unchanged.

Impact: Telemetry updates can be silently skipped.

Suggestion: Include additional fields (e.g., RawData, DataFormat, UpdateAt) in equality or document UID-only matching as a deliberate choice.


CG-002: Rust SessionCommandEvent swallows serialization errors

File: rust/chatgear/src/command.rs

Description: SessionCommandEvent::new uses serde_json::to_value(cmd) and replaces errors with Value::Null, losing the original error context.

Impact: Serialization failures are silently ignored, making debugging difficult.

Suggestion: Return a Result or log/report serialization failures explicitly.


CG-003: Go Pipe connections can block indefinitely on backpressure

File: go/pkg/chatgear/conn_pipe.go

Description: NewPipe uses bounded channels. If the receiver stops reading, senders will block in SendOpusFrames / SendState / SendStats without a timeout unless the caller provides a cancellable context.

Impact: Potential goroutine leaks in tests or in-process usage.

Suggestion: Document this behavior and recommend context timeouts for pipe usage.