Skip to content

v1.7.3

Choose a tag to compare

@github-actions github-actions released this 08 Nov 23:40
· 147 commits to main since this release
v1.7.3
7b1b3ce

Welcome to FengSui v1.7.3!

Important

Before you upgrade

  • Nothing to change in .env or docker-compose.yml.
  • New setting CPE_REQUIRE_ECC_SIGNATURE (default true): once your router has signed its encryption key at a login, a login without that signature is ended instead of trusted. Routers that never sign are not affected; set it to false only if a firmware update made your router stop signing.
  • Run docker exec cpe-dash node dist/cli.js doctor once after upgrading. If it reports a file as "stored without encryption", encrypt it as the backup page of the guide shows; a later release will refuse such files.
  • state.json gains one field (eccSigned); an older version ignores it, so you can still go back.

Highlights

Local numbers in your country's format

A number typed without + is completed the way your country writes it: Italian mobiles that begin with 39 and Polish numbers that begin with 48 keep their digits, and the trunk prefix 8 (Russia, Kazakhstan) or 06 (Hungary) is dropped. A Kazakh SIM now sets the default country, and Telegram's send wizard shows your country on its buttons.

Tighter security

The router's encryption key must stay signed once it has been, a stream opened with an expiring token ends when the token does, a one-time setup code survives a few typos, wrong current passwords count against the sign-in limit, and stopping FengSui in the middle of a router connection test logs out of the router.

Find old unencrypted files

cpe-dash doctor reports a data file written before encryption was required, and cpe-dash rekey encrypts it in place.

What's changed

🐛 Bug fixes

  • Local numbers in Italy, Poland, Russia, Kazakhstan and Hungary.
  • Telegram's send wizard follows the SIM's country too.
  • The wizard's country buttons show yours.
  • A Kazakh SIM sets the default country.
  • Two daemons started at the same moment cannot both run.
  • restore and rekey never leave a store missing.
  • Stopping during a connection test logs out of the router.
  • One failing listener no longer hides an event from the rest.
  • A one-time code survives the sign-in limit.
  • A term's help lets go.
  • Building the documentation never empties the repository.

🔒 Security

  • The router's encryption key must stay signed.
  • An expiring token's event stream ends when the token does.
  • Wrong current passwords count against the sign-in limit.
  • Agents see more of the rules.
  • No router request after logout begins, and no retry while yielding.
  • The router's login signature is compared in constant time.
  • doctor finds stores written without encryption, and rekey encrypts them.
  • No dialable phone numbers in the guide.

📚 Documentation

  • docs/PHASE2_ARCHITECTURE_REPORT.md §15 records the second final review
  • Contributing rules that match the repository.

🧰 Maintenance

  • Images you can verify.
  • Release notes link the commits since the release before.

Full Changelog: v1.7.2...v1.7.3


Details of every change: CHANGELOG.md · Documentation: fengsui.iocky.com · Container image: ghcr.io/cky008/cpe-dash:1.7.3