Starting from v2.2.5, all notable changes to this project will be documented in this file.
- Added precompiled packages for ARMv5 devices.
- Determine if eligible to enable cache to aviod OOM.
- Discard record that sample rate jitters in history.
- Load dummy settings if service configration field not found.
- Added the code of conduct.
- Skip empty files when getting file list.
- Set archiver clean interval to 1 hour.
- Display progress for helicorder tasks in frontend.
- Plot helicorder hourly for some weak devices.
- Split helicorder line into multiple segments when gap occurs.
- Reduced memory usage when plotting helicorder images.
- Record sequence numbers to file to reduce initialization time.
- Support previewing helicorder images in frontend.
- Added earthquake event source API of KNDC.
- Fixed channel names in inventory response.
- Cache parsed results instead of crawler response.
- Return nil directly for API endpoints if miniSEED or helicorder service is disabled.
- Support downloading helicorder images in frontend.
- Plot helicorder image periodically.
- Added event data source of KRADE.
- Fixed parsing errors on data sources of CENC, CWA.
- Fixed malformed serial number in legacy mode.
- Changed the cache data type to any.
- Made some tricks to make TypeScript happy.
- Attach station information when exporting miniSEED data.
- Disable captcha input until captcha image is loaded.
- Clean expired miniSEED files every hour.
- Added non-official event data sources (CWA, JMA, CENC).
- Added AFAD and DOST event data sources.
- Enhanced support for devices without GNSS support.
- Handle auto flag properly for event data sources of China.
- Fixed occasional checksum error in legacy mode.
- Use Web Workers to process seismic data.
- chore: Update slgo dependency to v0.0.4.
- Fixed the timestamp accuracy issue of event data source of JMA.
- Fixed token refresh logic in Main component.
- Insert timestamp before buffering legacy mode packets.
- Create a copy of the configuration file when executing make run.
- Updated retention default value to 120s in global configuration.
- Added multi-user support and permission management.
- Added earthquake event source API of BMKG.
- Display AnyShake Explorer device serial number on home page.
- Fix timezone issue on earthquake event source API of CEA.
- Refined the module names in the log.
- Add more detailed description to API documentation.
- Replace table component with MUI in the frontend.
- Use year provided by Cloudflare to fill the timing of earthquake event source of CWA.
- Added more earthquake event source APIs.
- Completely fixed the sampling rate jitter issue in legacy mode.
- Convert device ID to hexadecimal string format.
- Replace SVG icons with Material Design Icons in the frontend.
- Send error message when server returned no earthquake event.
- Merge API docs Makefile into the main Makefile.
- Add support for OpenBSD builds.
- Add SQLite support on all architectures.
- Provide i18n support for earthquake event data source.
- Show flags next to earthquake data sources.
- Deprecated
.env
file based versioning in frontend, usecraco.config.js
to generate version info. - Support Multi-platform Docker image build.
- Build and release more easily with GitHub Actions.
- Some Dockerfile optimizations to reduce image size.
- Fixed time offset in EQZT data source.
- Fixed Windows 7 compatibility issue.
- Enable mainline data protocol support for AnyShake Explorer without GNSS module.
- Added earthquake event source API support of EQZT.
- Data Protocol: The AnyShake Explorer mainline data protocol has been updated again. If you are using AnyShake Explorer implemented by STM32, please rebuild and burn the firmware to the latest version, if you are using AnyShake Explorer implemented by ESP8266, just ignore this message.
- Print log messages from AnyShake Explorer driver.
- Improved the stability of the legacy data protocol.
- Support Windows ARM32 architecture.
- Fix SQLite "out of memory" issue on Windows release build.
- Fix release names in the GitHub Actions workflow.
- Use
time.NewTimer
instead oftime.After
to avoid memory leak.
- Support custom NTP query retry times and timeout.
- Retry querying NTP server when the first attempt fails.
- Support rotating log files by day or by size.
- Validate the configuration file before starting the application.
- Fixed potential data race issues.
- Replace concurrent-map with haxmap to avoid OOM.
- Fixed build failure on windows/386, linux/mips* architectures.
- Support export history waveform as MiniSEED.
- Discard records with different sample rate for SeedLink history.
- Added support for forwarding raw messages via TCP.
- Re-support for the SeedLink protocol.
- Updated Go version to v1.23.0.
- Updated Gin version to v1.10.0.
- Update network time at 00:00:00 every day to avoid time drift.
- Alleviated the problem of frequent jitter in sampling rate.
- Fixed the time offset of up to several hours caused by external compensation of timestamp.
- Fixed an issue where the timepicker component in the frontend would not update the selected time when the time range was changed.
- Fixed an issue on the frontend where the CPU and memory usage percentages were not displayed correctly.
- Resolved a backend issue where the timestamp, latitude, longitude, and elevation values were always 0 when fallback values were expected.
- Added ability to automatically fix time jitter when using internet NTP server as time source.
- Fixed "insufficient arguments" error when using PostgreSQL as the database backend (see go-gorm/gorm#6832 (comment)).
- Never check for sample rate consistency in MiniSEED and SAC records when in legacy mode.
- Send history buffer only if client requests in WebSocket API to avoid flooding the client.
- Lowered
MINISEED_ALLOWED_JITTER_MS
constant to 2 ms for better jitter tolerance.
- Fixed the issue where MiniSEED recording in legacy mode would be interrupted due to sampling rate jitter.
- Data Protocol: The AnyShake Explorer data protocol has been entirely refactored. Please rebuild and burn the firmware of AnyShake Explorer to the latest version.
- Configuration File: The configuration file layout has been completely overhauled. The old configuration file format is no longer supported.
- SeedLink Server: The SeedLink service has been temporarily removed and will be re-implemented in a future release.
- API Endpoints: Some request and response fields have been modified in API v1. Please refer to the built-in Swagger API documentation for details.
- Added support for accessing AnyShake Explorer via a serial-to-Ethernet converter.
- Introduced custom channel prefixes (e.g., HH*, SH*, EH*).
- Added log dumping functionality with multiple output levels.
- Enhanced data processing and storage efficiency.
- Improved the accuracy of reading time from the Internet NTP server.
- Refined component lifecycle management using dependency injection for better module decoupling.
- Implemented an asynchronous message bus to optimize application execution efficiency.
- Established a GraphQL-based routing endpoint in preparation for API v2.
- Dockerized the application for easier and faster deployment.
- Completely resolved the gap issue in MiniSEED records.
- Fix gaps in MiniSEED records
- Update frontend map tile provider to OpenStreetMap
- Format frontend code using ESLint and Prettier
- Use
time.Ticker
to collect geophone counts by second
- Always use fallback locale if the preferred locale is not available
- Optimize the serial port reading process
- Sort earthquake event source API by name in frontend
- Fix intensity calculation issue of CSIS in frontend
- Removal of unused utility functions
- Support lifecycle configuration for records in database
- Set minimum TLS version to 1.2 for HTTP request utility
- Update frontend dependencies
- Show disk free space in banner instead of station UUID
- Add earthquake event source API support of CEA and INGV
- Reuse of int32 array encoding and decoding functions
- Specify the minimun TLS version to 1.0 in HTTP client
- Add earthquake event source API support of KMA
- Ensure that there is only one Websocket connection after reconnecting
- Fix a frontend issue that causes event querying to fail
- Set non-zero start time when SeedLink DATA command has no extra argument
- Response with OK when SeedLink DATA command has no extra argument
- Code style improvements again
- Basic implementation of SeedLink DATA command
- Fix frontend issue where the input component does not update its value
- Some frontend code style improvements
- Using NoSQL database as SeedLink ring buffer backend
- Fix SeedLink command parsing issue which causes some clients to be unable to connect
- Fragmenting SeedLink packets to accommodate higher sampling rates
- Remove redundant
status
fields in/api/v1/station
response - Fix timestamp issue in geophone data collecting module
- Input component optimization
- Back to limiting waveform query duration to 1 hour
- Support download SeisComP3 XML inventory directly from the frontend
- Update swagger docs to include new API endpoints
- Update frontend dependencies credits in README
- Fixed the validation error of the datetime picker in the frontend
- New API endpoint
/api/v1/inventory
to get SeisComP3 XML inventory data - Removed unused configuration fields, change geophone sensitivity unit to
V/m/s
- Frontend refactoring: use functional components and hooks
- Support Butterworth bandpass filter in frontend waveform data processing
- API /api/v1/mseed: use unix timestamp as file modification time response
- Check for remote server error before parsing earthquake event data from SCEA API
- Show disk usage of current working directory
- Allow setting rate limitation for API endpoints
- Update frontend dependencies
- Ensure encoded SeedLink packet length is 512 bytes
- Support SeedLink buffer size customization
- Basic implementation of SeedLink buffer file
- Fixed a depencency issue in MiniSEED data processing
- Simple implementation of SeedLink buffer
- Add PowerShell frontend build script for Windows
- Replace CWB to CWA in earthquake event data source API
- Allows querying waveform within 24 hours in JSON format
- Save MiniSEED data by channel to separate files
- Remove support for MIPS64 architecture
- Use timestamp from backend for frontend chart
- Support channel multi-selection in SeedLink protocol
- Fix MiniSEED sample rate calculation error under unstable data link
- Use the timestamp of the first packet as reference time in each MiniSEED record
- Some efforts to make SeedLink protocol work properly
- Disable SeedLink by default
- Update README to introduce SeedLink protocol
- Basic Go implementation of SeedLink
- Skip TLS verification for earthquake event data source API
- Remove SQLite support due to MIPS architecture incompatibility
- Make frontend className conditional rendering logic more predictable
- Correct frontend map anchor point offset
- Optimization on CPU usage metrics calculation
- Some changes made to
/api/v1/station
response: - Add
station
object field, which containsuuid
,name
,station
(string),network
andlocation
- Move the original
uuid
andstation
string fields tostation
object - Move current API handlers to
v1
subdirectory to prepare for future API versions - Regulating MiniSEED file naming rules to
NN.SSSSS.LL.D.yyyy.ddd.mseed
- Regulating SAC file naming rules to
yyyy.ddd.hh.mm.ss.ffff.NN.SSSSS.LL.CCC.D.sac
- Move
station
,network
andlocation
fields tostation_settings
in configuration file
- Translation optimizations
- Allow collapsing PGA, PGV, intensity data in realtime chart
- Automatically adjusting realtime chart height to fit the screen
- Update earthquake event arrival estimation algorithm
- Remove compensation IIR filter
- Change
altitude
field instation_settings
toelevation
- Restart daemon only on-failure
- Add restart delay for daemon
- Follow the SemVer principles
- Update README reference docs
- More backend credits
- Run build workflow on tag creations only
- Fixed SAC file waveform lag issue caused by sample rate calculation
- Migrating to anyshake/observer
- Supplement of README, CHANGELOG, build instructions, etc.
- Use templates to standardize ISSUEs and Pull Requests
- Update repository frontend logos