
TODO List for the core
Design and implement a path searching system for loading modulesDesign and implement a shared space for modules to store per-connection state. The core will include the connections username, and the horde module would include which hordes it is a member of, etc. Rememeber to think about namespacing.Implement commands for introspecting installed modules and disconnecting cleanly- Implement forking and chrooting if so required by the configuration file
- Implement some mechinism for using the core's binary as a generic interpreter, but with the core's libraries available.
Technical Stuff
- Colloquy2Protocol
- Colloquy2Schema
- Colloquy2Hordes -- Important architectural changes - groups and lists merge!
I imagine more will come soon.
User Ideas
If you're a user, and you have ideas or requests for Colloquy 2, then please leave them here!
- SSL/TLS support, authenticating the server (optionally authenticating clients too)
- Log stream (separate from event log) allowing any user's client's view of any conversation to be reproduced, with timestamps. Encrypted or pipable to GPG.
- Admin able to overtly or covertly eavesdrop on horde(s) or user(s)
- Each UID has 2 (or n) names and can log-in as and switch between them freely.
- Sinbin: no input no output for n minutes. Persists across log-ins.
- User profile stores criminal record (warnings, sinbins and kicks) with time and text. Appears in .info when viewed by admin. Admin can delete items from this list (they're in the permanent log anyway).
- .complain to allow a user to complain to (absent) admin. Time and text to allow admin to review log to evaluate complaint. Complaint is a priv (default enabled) that can be withdrawn.
- Support for moderated hordes: Writes by non-mod appear to moderators. Moderators can write 'as' any user. Prefix with "M" or something so everyone knows what is going on.
- .praise for nice things the way .warn is for unnice things (stored in profile alongside criminal record) (same priv as .warn)
- Every connection should be identified by the logged in name, the display name *and* a token of some kind. The token (perhaps prefixed by * or & or something) should be another way to talk about that connection to the talker. This will let bots reduce race conditions a lot. The token should be regenerated if a connection does .login as a different user. Thusly the token uniquely identifies a single connection to the talker of a given user. It'll make bots cleaner and more secure. DOIT :-)
A reminder to Kinnison:
Kinnison :bob: add an 'associationtype' to HordeMembership
Bob :Hmm?
Kinnison :bob: values include "member" "moderator" "owner" "admin"
Kinnison :everything else can stem from who says what to a horde with what
kind of people in it